U_UPDATE
WSupported on Windows
|
USupported on Unix
|
VSupported on OpenVMS
|
NSupported in Synergy .NET
|
xcall U_UPDATE([TRUE|FALSE])
Arguments
TRUE | FALSE
(optional) The update flag: TRUE turns updates on (default) and FALSE turns updates off. (Windows only) (n)
Discussion
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.
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. |
To prevent menu flicker on Windows, you can use U_UPDATE(FALSE) prior to every call made to the E_EXIT subroutine. |
Examples
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