At 2:48 pm -0800 16/12/01, John wrote:
> Hope someone can help. I have an application that needs to look
>the text the user is typing and editing in real time. For each
>keystroke I need to work out what the current word is. This is
>complicated a bit by the fact that the user is free to edit text
>anywhere in the field - simply capturing keystrokes and building the
>word as they type will not work because they could have begun
>editing a word in previously typed text. The following example
>solves the problem but is very, very slow (to the point of making it
>unusable).
>
>on keyDown
> global keyDownPoint
> put the selectedLoc into keyDownPoint --get the location of the
>insertion point
> pass keyDown
>end keyDown
>
>
>on keyup
> global keyDownPoint
> put the selectedLoc into lastPoint --get the location
>of the insertion point
> click at keyDownPoint --click at the word
>based on the KeyDown event
> put the clicktext & return after field "debug" --so I can see what
>has happened
> click at lastPoint --put the insertion
>point back so I don't type 'backwards'
> pass keyUp
>end keyup
>
>
> Does anyone know of a way to do this that is reasonably fast?
>Any thoughts at all would be appreciated.
Try this. (Not fully tested.)
Putting it in a rawKeyUp handler will also get the current word when,
for example, the delete key is pressed.
on rawKeyUp
put length(the text of me) into tLength
put word 4 of the selectedChunk into tStart
repeat with i = tStart down to 1
if char i of the text of me is in space & tab & cr or i = 1 then
put i into tP1
exit repeat
end if
end repeat
repeat with i = tStart to tLength
if char i of the text of me is in space & tab & cr or i = tLength then
put i into tP2
exit repeat
end if
end repeat
put char tP1 to tP2 of the text of me into field "debug"
pass rawKeyUp
end rawKeyUp
Cheers
Dave Cragg
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution