Control of Text Fields.
Alex Tweedly
alex at tweedly.net
Fri Nov 5 17:08:11 EDT 2021
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.
More information about the use-livecode
mailing list