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", ; enabled = .F.,; value = 0 ADD OBJECT command1 AS COMMANDBUTTON 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.valid thisform.text1.value = thisform.text1.value + 1 ENDPROC PROCEDURE load ADDPROPERTY(this,"lock",this) ENDDEFINE