Ejemplo de cómo obtener la palabra bajo el cursor en un control editbox.
PUBLIC oForm1
oForm1 = NEWOBJECT("Form1")
oForm1.SHOW
RETURN
DEFINE CLASS Form1 AS FORM
TOP = 0
LEFT = 0
HEIGHT = 276
WIDTH = 419
DOCREATE = .T.
CAPTION = "Form1"
ALLOWOUTPUT = .F.
NAME = "Form1"
ADD OBJECT Edit1 AS EDITBOX WITH ;
FONTNAME = "Tahoma", FONTSIZE = 8, NAME = "Edit1", ;
ANCHOR = 15, HEIGHT = 217, LEFT = 12, TOP = 12, WIDTH = 397, ;
VALUE = [In Windows© XP®, {owner/draw} menus show icons, but Windows Vista® uses ] ;
+ [alpha-blended bitmaps instead.] + CHR(13) + CHR(10) ;
+ [Windows Vista "provides" menus are (part of) the 'visual schema'. ] ;
+ CHR(13) + CHR(10) ;
+ [Using a destroyed menu handle] + CHR(13) + CHR(10)
ADD OBJECT Timer1 AS TIMER WITH ;
TOP = 216, LEFT = 0, HEIGHT = 23, WIDTH = 23, ;
INTERVAL = 100, NAME = "Timer1"
ADD OBJECT Text1 AS TEXTBOX WITH ;
FONTNAME = "Tahoma", FONTSIZE = 8, ;
HEIGHT = 23, LEFT = 12, TOP = 240, WIDTH = 396, ;
ANCHOR = 14, READONLY = .T., NAME = "Text1"
PROCEDURE Edit1.KEYPRESS
LPARAMETERS nKeyCode, nShiftAltCtrl
*!* We have to use a timer to get out of the KeyPress event loop
*!* because Selstart and SelLength get updated AFTER pressing
*!* the left/right arrow keys, but does NOT get updated
*!* after pressing up/down arrow keys
THISFORM.Timer1.ENABLED = .T.
ENDPROC
PROCEDURE Edit1.MOUSEUP
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THISFORM.Timer1.ENABLED = .T.
ENDPROC
PROCEDURE Timer1.TIMER
THIS.ENABLED = .F.
m.loEdit = THISFORM.edit1
m.charfilter = " ,;.:[]{}()/\'®©<>" + '"' + CHR(13) + CHR(0)
m.lcWord = ""
m.lcChar = ""
*!* 25 arbitrary limit for search, just in case
FOR m.lnx = 0 TO 25
m.lcWord = m.lcChar + m.lcWord
m.lcChar = SUBSTR(m.loEdit.TEXT, m.loEdit.SELSTART + m.loEdit.SELLENGTH - m.lnx, 1)
IF m.lcChar $ m.charfilter
EXIT
ENDIF
ENDFOR
m.lcChar = ""
FOR m.lnx = 1 TO 25
m.lcWord = m.lcWord + m.lcChar
m.lcChar = SUBSTR(m.loEdit.TEXT, m.loEdit.SELSTART + m.loEdit.SELLENGTH + m.lnx, 1)
IF m.lcChar $ m.charfilter
EXIT
ENDIF
ENDFOR
THISFORM.text1.VALUE = m.lcWord
m.loEdit = NULL
ENDPROC
ENDDEFINE
Carlos Alloatti