Dispatch

 (Available in 00 TS Base(GUI) - TS_Base_6_DialogFromResource)

Source

METHOD Dispatch( hDlg AS PTR, dwMessage AS DWORD, wParam AS DWORD, lParam AS LONG  ; ...
...) AS LOGIC PASCAL CLASS TS_DialogFromResource
LOCAL lRetVal AS LOGIC
   #IFDEF TS_TRACETIMED_ENABLE
      _TS_TraceTimedEnter( SysAddAtom( PSZ( _CAST, __APPLICATION__ ) ), SysAddAtom ; ...
     ... ( PSZ( _CAST, __MODULE__ ) ), SysAddAtom( PSZ( _CAST, __ENTITY__ ) ) )
   #ENDIF
   DO CASE
   CASE SELF:_Handle<>NULL_PTR .AND. SELF:_Handle ; ...
  ... <>hDlg
      SELF:OnError( FALSE, __APPLICATION__, __MODULE__, __ENTITY__ ; ...
     ... , __LINE__, "SELF:_Handle<>NULL_PTR .AND. SELF:_Handle<>hDlg" )
      lRetVal:=FALSE
   CASE dwMessage==WM_INITDIALOG .AND. SELF:_Handle==NULL_PTR
      SELF:_Handle:=hDlg
      lRetVal:=SELF:OnInitDialog( PTR( _CAST, wParam ), lParam  ; ...
     ... )
   CASE SELF:_Handle==NULL_PTR
      lRetVal:=FALSE
   CASE dwMessage==WM_COMMAND
      SELF:OnCommand( dwMessage, wParam, lParam )
      lRetVal:=TRUE
   CASE dwMessage==WM_DESTROY
      SELF:OnDestroy( )
      SELF:_Handle:=NULL_PTR
      lRetVal:=TRUE
   OTHERWISE
      lRetVal:=FALSE
   END
   #IFDEF TS_TRACETIMED_ENABLE
      _TS_TraceTimedLeave( SysAddAtom( PSZ( _CAST, __APPLICATION__ ) ), SysAddAtom ; ...
     ... ( PSZ( _CAST, __MODULE__ ) ), SysAddAtom( PSZ( _CAST, __ENTITY__ ) ) )
   #ENDIF
RETURN lRetVal