>ACTIVATE WINDOW "debug Output" >SET EVENTLIST TO Click,Valid,When,Message,InteractiveChange >SET EVENTTRACKING ON > >loForm = createobject('zForm') >loForm.show > >FOR k=1 TO 20 > CHRSAW(0.2) > KEYBOARD '{SPACEBAR}' PLAIN CLEAR > DOEVENTS >NEXT > > > >define class zForm as form > Caption = "Click on When button" > Name = "Form1" > Autocenter = .T. > Width = 360 > Height = 150 > visible = .t. > > ADD OBJECT text1 AS textbox WITH ; > Height = 23, ; > Left = 20, ; > Width = 80, ; > TabIndex = 2, ; > Top = 10, ; > Name = "Text1", ; > value = 0 > ADD OBJECT command1 AS CHECKBOX WITH ; > Top = 10, ; > Left = 140, ; > Height = 27, ; > Width = 120, ; > Caption = "When", ; > TabIndex = 1, ; > Name = "Command1" > > ADD OBJECT label1 AS label WITH ; > top = 44, ; > left = 20, ; > width = 250, ; > wordwrap = .T., ; > autosize = .t., ; > Caption = "When event fires twice when the button does not have focus before click!!?" > ADD OBJECT label2 AS label WITH ; > top = 84, ; > left = 20, ; > width = 250, ; > wordwrap = .T., ; > autosize = .t., ; > Caption = "When event fires once when the button has focus before click!!?" > > PROCEDURE command1.Valid > RETURN .F. && this is ignored > ENDPROC > >* workaround >* PROCEDURE command1.Click >* NODEFAULT >* ENDPROC > > PROCEDURE command1.When > thisform.text1.value = thisform.text1.value + 1 > ENDPROC > > PROCEDURE load > ADDPROPERTY(this,"lock",this) >ENDDEFINE >