First code, ok no error:SYSTEM ERROR
Error BASE/1004 Message not found: TDIALOG:BCODEBLOCK
Called from __ERRRT_SBASE(0)
Called from TDIALOG:ERROR(0)
Called from (b)HBOBJECT(0)
Called from TDIALOG:MSGNOTFOUND(0)
Called from TDIALOG:BCODEBLOCK(0)
Called from (b)DLGTEXTMSGCLASS_EXECUTE(118)
Called from TDIALOG:INITIATE(0)
Called from TDIALOG:HANDLEEVENT(0)
Called from DIALOGBOXINDIRECT(0)
Called from TDIALOG:ACTIVATE(0)
Called from DLGTEXTMSGCLASS:EXECUTE(118)
Called from ZE_FWTEXTMSG(9)
Called from DO(0)
Called from DOPRG(152)
Code: Select all | Expand
PROCEDURE ze_fwTextMsg
LOCAL oDlgMsg
oDlgMsg := DlgTextMsgClass():New()
oDlgMsg:bCodeBlock := { || ThisTest( oDlgMsg ) }
oDlgMsg:Execute()
Code: Select all | Expand
CREATE CLASS DlgTextMsgClass
VAR xDlg
...
VAR bCodeBlock
METHOD Execute()
Code: Select all | Expand
METHOD Execute() CLASS DlgTextMsgClass
...
IF ::bCodeBlock == Nil
ACTIVATE DIALOG ::xDlg CENTERED
ELSE
ACTIVATE DIALOG ::xDlg CENTERED ;
ON INIT ( (Self), Eval( ::bCodeBlock ) )
ENDIF
...
ON INIT uses Self as parameter - Self is TDIALOG
Eval( ::bCodeBlock ) uses Self, but uses TDIALOG Class and not DlgTextMsgClass
TDIALOG does not have bCodeBlock.