DEFINE CLASS Parent_Form AS Form PROCEDURE Load WAIT WINDOW "Parent_Form.Load()" ENDPROC && Load ENDDEFINE && Parent_Form DEFINE CLASS Child_Form AS Parent_Form ENDDEFINE && Child_Form DEFINE CLASS Grandchild_Form AS Child_Form PROCEDURE Load WAIT WINDOW "before Load()" DODEFAULT() WAIT WINDOW "After Load()" ENDPROC && Load ENDDEFINE && Grandchild_FormOne thing we might try is to define additional methods -- a BeforeSomeEvent and AfterSomeEvent, then in the child classes we don't touch SomeEvent code, but use the BeforeSomeEvent and AfterSomeEvent instead.
DEFINE CLASS Parent_Form AS Form PROCEDURE Load THISFORM.BeforeLoad() WAIT WINDOW "Parent_Form.Load()" THISFORM.AfterLoad() ENDPROC && Load PROCEDURE BeforeLoad ENDPROC && BeforeLoad PROCEDURE AfterLoad ENDPROC && AfterLoad ENDDEFINE && Parent_Form DEFINE CLASS Child_Form AS Parent_Form ENDDEFINE && Child_Form DEFINE CLASS Grandchild_Form AS Child_Form PROCEDURE BeforeLoad WAIT WINDOW "before Load()" ENDPROC && BeforeLoad PROCEDURE AfterLoad WAIT WINDOW "After Load()" ENDPROC && AfterLoad ENDDEFINE && Grandchild_Form