On VFP8: Click => TABLEUPDATE() => fire 1 beforeRowColChange side Events RightClick => TABLEREVERT() => fire 2 beforeRowColChange side Events SPACE => ROLLBACK => fire 1 beforeRowColChange side Events On VFP9: Click => TABLEUPDATE() => fire none side events RightClick => TABLEREVERT() => fire 2 beforeRowColChange side Events SPACE => ROLLBACK => fire 1 beforeRowColChange side Events * for END TRAN i'm not sure if a side event fire or not in others situations
ON SHUTDOWN QUIT CLOSE DATABASES ALL ACTIVATE WINDOW "Debug Output" SET EVENTLIST TO "BEFOREROWCOLCHANGE","LostFocus","Valid","Click","rightclick" SET EVENTTRACKING ON * see aitab: SET CONFIRM ON SET TALK OFF SET SAFETY OFF SET EXACT ON SET DELETED ON CREATE TABLE test ( test N(1) ) FOR i=1 TO 50 INSERT INTO test VALUES (1) ENDF SET FILTER TO test=1 GO BOTTOM SET MULTILOCK ON CURSORSETPROP( 'Buffering', 5, 'test') SKIP -1 obrowse1=NEWOBJECT("browse1") BEGIN TRANSACTION obrowse1.SHOW READ EVENTS DO WHILE TXNLEVEL()>0 ROLLBACK ENDDO SET EVENTTRACKING OFF SET EVENTLIST TO DEFINE CLASS browse1 AS FORM ADD OBJECT gridbase1 AS GRID PROCEDURE INIT * At least 3 rows must be visible BINDEVENT(this.gridbase1.column1.text1,"click",this,"clicked") BINDEVENT(this.gridbase1.column1.text1,"rightclick",this,"rightclicked") BINDEVENT(this.gridbase1.column1.text1,"KEYPRESS",this,"KEYPRESSed") THIS.gridbase1.DOSCROLL(0) THIS.gridbase1.DOSCROLL(0) ENDPROC PROCEDURE gridbase1.BEFOREROWCOLCHANGE(nColIndex) DEBUGOUT PROGRAM() ENDPROC PROCEDURE gridbase1.Click DEBUGOUT PROGRAM() ENDPROC PROCEDURE gridbase1.rightclick DEBUGOUT PROGRAM() ENDPROC PROCEDURE clicked DEBUGOUT PROGRAM(),TABLEUPDATE(0, .F., 'TEST' ) PROCEDURE rightclicked DEBUGOUT PROGRAM(),TABLEREVERT(.F.,'TEST' ) PROCEDURE KEYPRESSed LPARAMETERS k1,k2 IF k1=32 DEBUGOUT PROGRAM() ROLLBACK BEGIN TRANSACTION NODEFAULT ENDIF PROCEDURE Unload CLEAR EVENTS ENDDEFINEAnother bug is on eventtracking, grid Click,RightClick are not tracked ( click on the grid area )