I made a test program while trying SYSTEM Prop:Hide to see how it works. To see what would have if it was UnHide i.e. System and Window PROP:Hide=False would it grab focus. I know its not intended to be Unhide.
First it shows this message to let you run it 3 ways Show (normal), Hide, or UnHide which means it sets System Hide=True then later sets it to False to see what happens. As noted in the message there are command line switches to do the same. That way you can run from another program w/o the message which would take focus.
If you select Hide+UnHide it first does SYSTEM Hide=True, then in Event Open Window sets SYSTEM Hide=False plus unhides the Window. It also tries to unhide controls that were hidden but it does not work.
IF HideIt THEN SYSTEM{PROP:Hide}=TRUE.
OPEN(WINDOW)
IF UnHideIt THEN SYSTEM{PROP:Hide}=FALSE. ! Hide+UnHide
ACCEPT
CASE EVENT()
OF EVENT:OpenWindow
IF UnHideIt THEN ! Hide+UnHide
SYSTEM{PROP:Hide}=FALSE
Window{PROP:Hide}=False
UNHIDE(?CloseButton) ; UNHIDE(?RunHideBtn) ; UNHIDE(?RunHideBtn) !Will unhide? NO
UNHIDE(?FYI1) ; UNHIDE(?FYI2) ; UNHIDE(?RunHideBtn) !Will unhide? NO
END
In the below screen capture the Designer Window is on the Left showing all controls, and the runtime window is on the left. You see Button, String, Prompt do not unhide. The Progress control still works. The window is in a Disabled like state that nothing can be clicked, but the Escape key works.
System Prop:Hide Test Project
SystemHide_Test_Prj_20230612.zip (3.2 KB)
One thing I didn’t think to try was to Create() String or Prompt controls on the Window to see if they showed. Ok tried it and it worked! So you can have this System Hide window with a Working Progress, then Create strings to show other info:
This code is not in the attachment:
st# = CREATE(0,CREATE:string) !Create a Control on System HIDE window
SETPOSITION(st#,1,1)
st#{PROP:TExt}='I was CREATE(0,CREATE:string) SETPOSITION(st#,1,1)'
UNHIDE(st#)