***THISFORM.cmdBtn1.Click() [earth-shaking code goes here]Ver 1.1.b
***THISFORM.cmdBtn1.Click() [earth-shaking code still here] ***THISFORM.tmrTimer1.Timer() WITH THISFORM .cmdBtn1.Click() ENDWITHVer 3.1.13.c
***THISFORM.cmdBtn1.Click() [earth-shaking code still here] ***THISFORM.tmrTimer1.Timer() WITH THISFORM .cmdBtn1.Click() ENDWITH *** fifteen other controls, methods and events reference THISFORM.cmdBtn1.Click()Ver 8.0.1
*** in Earth_Shaking_Stuff.prg DEFINE CLASS Earth_Shaking_Stuff AS CUSTOM FUNCTION Earth_Shaking_Code [earth-shaking code] RETURN(.T.) ENDDEFINE *** in THISFORM *INIT() IF ATC("Earth_Shaking_Stuff", SET("LIBRARY")) = 0 SET CLASSLIB TO Earth_Shaking_Stuff.prg ENDIF THIS.oShakeItBaby=CREATEOJBECT("Earth_Shaking_Stuff") * METHOD cmdBtn1.Click() THIS.oShakeItBaby.Earth_Shaking_Code() RETURN ***THISFORM.tmrTimer1.Timer() THIS.oShakeItBaby.Earth_Shaking_Code() *** fifteen other controls, methods and events THIS.oShakeItBaby.Earth_Shaking_Code()As silly as the example seems, I've seen code that wrapped around itself, doing pretty much what was seen in the first series of toung-in-cheek examples. When a major change in the form's functionality was required, I wound up making exactly the kind of change you see here.