Control of Text Fields.

Alex Tweedly alex at tweedly.net
Sat Nov 6 20:44:11 EDT 2021


On 06/11/2021 19:04, Richmond via use-livecode wrote:
> My competing version is now "up":
>
> https://forums.livecode.com/viewtopic.php?f=7&t=36444&p=210241#p210241
>
> Richmond.

Don't you mean "my cooperating version ..."; surely the use-list is 
about helpful cooperatin and collaborative suggestions, not about 
competing :-)


But having said that:  your "left-arrow' emulation gets it wrong if 
there is a chunk selection active.

left-arrow should position the iBeam to the left of the selection, while 
this code positions it to the left of the rightmost character of the 
selection.

Alex.

>
> On 5.11.21 23:08, Alex Tweedly via use-livecode wrote:
>>
>> On 05/11/2021 20:18, Roger Guay via use-livecode wrote:
>>> Alex, I did not see that and it is not in my mailbox. Would you 
>>> please send it again?
>>>
>>> Thanks,
>>> Roger
>>
>> Here it is again, below.
>>
>> Or download the sample stack at 
>> https://tweedly.org/downloads/calcbuttons.livecode
>>
>>  - not as pretty as Richmond's, doesn't even have all the digits ...)
>>
>> Previously I said:
>>
>> Here's an expanded snippet. The input is in a field called "fInput", 
>> the buttons are all in a group, and handled by the group script 
>> (saves having many tiny almost identical scripts).
>>
>> The script  uses the name of the target - but since I would never, 
>> ever have a control named as a number, the digit buttons use their 
>> label instead.
>>
>> If the user cannot select a chunk of text then some of this could be 
>> shortened.
>>
>>
>>> on mouseup
>>>    if the target = me then
>>>       -- click in the background in the group
>>>       exit mouseup
>>>    end if
>>>    local tChunk
>>>    focus on fld "fInput"
>>>    put the selectedchunk into tChunk
>>>    if the label of the target is a number then
>>>       put the label of the target into the selectedchunk
>>>       exit mouseUp
>>>    end if
>>>    local tFirst, tLast
>>>    put word 2 of tChunk into tFirst
>>>    put word 4 of tChunk into tLast
>>>    switch the short name of the target
>>>       case "go left"
>>>          select before char (min(tFirst, tLast)) of fld "fInput"
>>>          break
>>>       case  "go right"
>>>          select after char (max(tFirst, tLast)) of fld "fInput"
>>>          break
>>>       case "Del"
>>>          -- remove the selection, or the char *after* the ibeam
>>>          if tFirst <= tLast then
>>>             put empty into char tFirst to tLast of fld "fInput"
>>>          else
>>>             put empty into char (tFirst) of fld "fInput"
>>>          end if
>>>          break
>>>       case "BS"
>>>          -- remove the selection, or the char *before* the ibeam
>>>          if tFirst <= tLast then
>>>             put empty into char tFirst to tLast of fld "fInput"
>>>          else
>>>             put empty into char (tFirst-1) of fld "fInput"
>>>          end if
>>>          break
>>>          -- all the other keys !!
>>>       default
>>>    end switch
>>> end mouseup
>>
>> Alex.
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your 
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list