Search code examples
windowopenedge

OpenEdge ABL UI Freeze window until Popup closes


I'm using OpenEdge ABL to create a window that will run a secondary window on the touch of a button. However I am trying to get the first/parent window to freeze while the child window is running and resume when the child window closes.

I attempted to use WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW on the parent window however this returned the error: Invalid widget handle used in WAIT-FOR statement. WAIT-FOR terminated (4122).

To run the child window I use:

RUN D:\adherenceEdit_12875-Win.w(cUserId,cShiftCode,dtDate).

Solution

  • I got around this was by adding:

     DO WITH FRAME {&FRAME-NAME}:
    

    Making the sensitivity of the buttons false meant that they would not be pressed while the child window was running.

      ASSIGN CURRENT-WINDOW:SENSITIVE = FALSE.
    
    
      RUN D:\adherenceEdit_12875-Win.w(INPUT cUserId,
                                       INPUT cShiftCode,
                                       INPUT dtDate).
    

    After the child was closed the parent window continues running and resets the buttons sensitivity allowing them to be pressed

      ASSIGN CURRENT-WINDOW:SENSITIVE = TRUE.
    
     END.
    

    I'm not sure if this is the most efficient way to do this and @nwahmaet's answer may have provided a more efficient method.