Article ID: 194201
Article Last Modified on 11/12/2001
PUBLIC oform1
oform1=CREATEOBJECT("form1")
oform1.SHOW
RETURN
DEFINE CLASS form1 AS FORM
AUTOCENTER = .T.
CAPTION = "KeyPress of Textbox"
NAME = "Form1"
ADD OBJECT text1 AS TEXTBOX WITH ;
FORMAT = "!", ;
HEIGHT = 24, ;
LEFT = 132, ;
TOP = 141, ;
WIDTH = 156, ;
NAME = "Text1"
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 7, ;
LEFT = 6, ;
HEIGHT = 27, ;
WIDTH = 197, ;
CAPTION = "Change TEXTBOX Format to !", ;
NAME = "Command1", ;
ENABLED = .F.
ADD OBJECT command2 AS COMMANDBUTTON WITH ;
TOP = 39, ;
LEFT = 6, ;
HEIGHT = 27, ;
WIDTH = 197, ;
CAPTION = "Blank TEXTBOX Format ", ;
NAME = "Command2"
ADD OBJECT text2 AS TEXTBOX WITH ;
CONTROLSOURCE = "thisform.text1.format", ;
HEIGHT = 23, ;
LEFT = 302, ;
READONLY = .T., ;
TABSTOP = .F., ;
TOP = 26, ;
WIDTH = 52, ;
NAME = "Text2"
ADD OBJECT label3 AS LABEL WITH ;
CAPTION = "text1.format:", ;
HEIGHT = 18, ;
LEFT = 219, ;
TOP = 28, ;
WIDTH = 70, ;
NAME = "Label3"
PROCEDURE INIT
CLEAR MACROS
ENDPROC
PROCEDURE command1.CLICK
WITH THISFORM.text1
.FORMAT = "!"
.SETFOCUS()
.VALUE = ''
.PARENT.REFRESH()
ENDWITH
THIS.ENABLED = .F.
THISFORM.command2.ENABLED = .T.
ENDPROC
PROCEDURE command2.CLICK
WITH THISFORM.text1
.FORMAT = ""
.SETFOCUS()
.VALUE = ''
.PARENT.REFRESH()
ENDWITH
THIS.ENABLED = .F.
THISFORM.command1.ENABLED = .T.
ENDPROC
ENDDEFINE
PROCEDURE text1.KEYPRESS
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcSetComp, lnLastKey
IF '!' $ THIS.FORMAT
lcSetComp = SET("Compatible")
SET COMPATIBLE ON
lnLastKey = LASTKEY()
SET COMPATIBLE &lcSetComp
* If a function key is pressed, do not process it.
* We differentiate between F keys and normal keys
* by looking at LASTKEY() value, which is only unique
* with SET COMPATIBLE ON. With SET COMPATIBLE ON, F2
* through F10 are < 0 regardless of Shift, Alt, or Ctrl
* modifier. F10 through F12 are between 133 and 140.
IF lnlastkey < 0 OR ;
BETWEEN(lnlastkey, 133, 140)
NODEFAULT
ENDIF
ENDIF
ENDPROC
KEYPREVIEW = .T.
PROCEDURE KEYPRESS
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcSetComp, lnLastKey
* Check to see if activecontrol is a text box with ! in format.
IF THISFORM.ACTIVECONTROL.BASECLASS = 'Textbox' AND ;
'!' $ THISFORM.ACTIVECONTROL.FORMAT
lcSetComp = SET("Compatible")
SET COMPATIBLE ON
lnLastKey = LASTKEY()
SET COMPATIBLE &lcSetComp
* If a function key is pressed, do not process it.
* We differentiate between F keys and normal keys
* by looking at LASTKEY() value, which is only unique
* with SET COMPATIBLE ON. With SET COMPATIBLE ON, F2
* through F10 are < 0 regardless of Shift, Alt, or Ctrl
* modifier. F10 through F12 are between 133 and 140.
IF lnlastkey < 0 OR ;
BETWEEN(lnlastkey, 133, 140)
NODEFAULT
ENDIF
ENDIF
ENDPROC
Additional query words: kbVFp300bbug kbVFp500abug kbVFp600bug kbContainer kbCtrl
Keywords: kbbug kbnofix kbcode KB194201