U_UPDATE

Update screen

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
xcall U_UPDATE([TRUE|FALSE])

TRUE | FALSE

(optional) The update flag: TRUE turns updates on (default) and FALSE turns updates off. (Windows only) (n)

A call to U_UPDATE causes an immediate screen update. Because input processing updates the screen, U_UPDATE is necessary only if you want to update the screen without input. For example, U_UPDATE can be used to display a “Please wait” message during processing.

On Unix and OpenVMS, the argument is ignored.

On Windows, a call to U_UPDATE(TRUE) (or U_UPDATE(), without an argument) causes an immediate screen update and reinstates screen updating if it’s been turned off by U_UPDATE(FALSE). Screen updating is the default, so U_UPDATE(TRUE) isn’t necessary unless you want an immediate update or you’ve turned screen updating off with U_UPDATE(FALSE).

A call to U_UPDATE(FALSE) suspends screen updating until the next call to U_UPDATE(), U_UPDATE(TRUE), W_UPDT, or a Toolkit or Synergy windows input routine.  

Note

Use U_UPDATE(FALSE) only if you expect rapid changes to the display and you know an update will soon follow (for example, when entering or exiting environments and placing or removing menu columns and other windows). If updates are turned off for too long, there may be repainting problems—for example, “bleed through”, which may happen if windows for other applications are updated while updates are turned off for your application.

Tip

To prevent menu flicker on Windows, you can use U_UPDATE(FALSE) prior to every call made to the E_EXIT subroutine.

The following example prevents menu flicker when the system is removing columns.

xcall e_enter
xcall m_1dcol(id1,, "col_1")
xcall m_1dcol(id2,, "col_2")
.
.
.
(processing loop)
.
.
.
xcall u_update(FALSE)
xcall e_exit 

To set the auto_update flag for all E_ENTER and E_EXIT subroutine calls, you can write your own version of the E_EXIT and E_ENTER subroutines as follows:

subroutine my_enter
        a_shr   ,n
proc
        xcall u_update(FALSE)
        xcall e_enter(a_shr)
        xreturn
endsubroutine
subroutine my_exit
proc
        xcall u_update(FALSE)
        xcall e_exit
        xreturn
endsubroutine