JUNK.PRG ACTIVATE SCREEN CLEAR SET TALK ON SET NOTIFY ON SET STATUS BAR OFF PUBLIC oMyApp SET CLASSLIB TO myapp.VCX oMyApp = CREATEOBJECT("myapp") DO FORM junk1 READ events CLEAR ALLHere's the form...
************************************************** *-- Form: form1 (junk1.scx) *-- ParentClass: form *-- BaseClass: form * DEFINE CLASS form1 AS form DataSession = 2 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT command1 AS commandbutton WITH ; Top = 84, ; Left = 180, ; Height = 27, ; Width = 84, ; Caption = "Color", ; Name = "Command1" ADD OBJECT command2 AS commandbutton WITH ; Top = 84, ; Left = 48, ; Height = 27, ; Width = 84, ; Caption = "Quit", ; Name = "Command2" PROCEDURE Init WAIT WINDOW "Form.Init" FOR X = 1 TO 100 A=M.X ENDFOR RETURN DODEFAULT() ENDPROC PROCEDURE command1.Init WAIT WINDOW "Color button init" FOR i = 1 TO 1000 NEXT I RETURN DODEFAULT() ENDPROC PROCEDURE command1.Click WAIT WINDOW SET("TALK") oMyApp.SetFormColor(THISFORM) WAIT WINDOW SET("TALK") FOR I = 1 TO 100 A=m.I NEXT I ENDPROC PROCEDURE command2.Click CLEAR EVENTS THISFORM.Release() RETURN .T. ENDPROC ENDDEFINE * *-- EndDefine: form1 **************************************************Here's my app object.
************************************************** *-- Class: myapp (myapp.vcx) *-- ParentClass: custom *-- BaseClass: custom * DEFINE CLASS myapp AS custom Name = "myapp" PROCEDURE setformcolor LPARAMETERS m.toForm m.toForm.BackColor = RGB(255,255,255) ENDPROC ENDDEFINE * *-- EndDefine: myapp **************************************************I added code like this to the form.dataenvironment OpenTables, BeforeOpenTables, and Init methods.
A=PROGRAM() + " Before SET TALK OFF" && SHOULD ECHO SET TALK OFF B=PROGRAM() + " After SET TALK OFF" && SHOULD NOT ECHOWhat you'll see is the earliest place to SET TALK OFF is in the data environment's OpenTables method. Put SET TALK OFF there. If it comes back, you'll have to start tracing. ;)