How to start this project...
J. Landman Gay
jacque at hyperactivesw.com
Sun Oct 1 14:22:05 EDT 2006
Adrian Williams wrote:
> Martin,
> Thanks for your suggestion. It did not work for me - reporting:
>
> Type Function: error in function handler
> Object edtText
> Line put Lookupchar(char beforecharpos of me) into newbeforechar
> Hint Lookupchar
Martin was assuming you would write your own function "lookupchar" to do
the actual work, but since you are new at this, the function is actually
exactly what you are asking about.
>
> The object field is "edtText" but if I change me to edtText
> that throws up an error too.
To reference a field, you'd need to add the object descriptor. That is,
change "me" to "field 'edtText'". But "me" is okay, leave it that way as
long as the script is in the field itself.
> To explain a little more why the cursor position is important...
> User entering text can be dealt with as keyDown.
> But if User goes back and inserts cursor in an existing word,
> I need to know what is either side so that those characters can
> be matched against a list and replaced if necessary.
Look up the "selectedChunk" term in the dictionary. This gives you the
position of the insertion point, or the position of any selected text,
in the format:
char x to y of field "whatever"
If x is smaller than y, a range of characters is selected. If x is
larger than y, the insertion point is blinking between two characters.
Your script should check to see whether x is smaller than y. If so,
you've got a selection that spans characters, and x-1 would be the
previous character, and y+1 would be the next one. If x is larger than
y, the insertion point is between characters and x+1 would be the next
character and y-1 would be the previous one.
Once you have determined whether you have a range of text or not, you
can put extra text either in front of or after the selected chunk:
put "abc" before char x of field "whatever" -- works for a range
put "abc" after char y of field "whatever" -- works for a range
put "abc" before char y of field "whatever" -- for non-range
put "abc" after char x of field "whatever" -- for non-range
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list