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
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.