Global constants and variables
The following page is split into two sections: global constants and global variables.
Global constants
- __UI_VersionNumber contains the build number.
- __UI_Version contains the user-friendly version string for example, “v1.1”
The following are global constants groupted by function.
Boolean
- True
- False
The traditional way of having boolean variables in QB64 is by setting True = -1, as it allows bit manipulation with operators like NOT, AND, OR, etc (False = NOT True).
Back style
Used for setting a control's background to opaque or transparent.
- __UI_Opaque
- __UI_Transparent
Text align
- __UI_Left
- __UI_Center
- __UI_Right
- __UI_Top
- __UI_Middle
- __UI_Bottom
MessageBox
For a detailed explanation of using the message box global constants, please refer to the MessageBox method.
- MsgBox_OkOnly
- MsgBox_OkCancel
- MsgBox_AbortRetryIgnore
- MsgBox_YesNoCancel
- MsgBox_YesNo
- MsgBox_RetryCancel
- MsgBox_CancelTryagainContinue
- MsgBox_AppModal
- MsgBox_SystemModal
- MsgBox_SetForeground
- MsgBox_DefaultButton1
- MsgBox_DefaultButton2
- MsgBox_DefaultButton3
- MsgBox_Defaultbutton4
- MsgBox_Critical
- MsgBox_Question
- MsgBox_Exclamation
- MsgBox_Information
- MsgBox_Ok
- MsgBox_Cancel
- MsgBox_Abort
- MsgBox_Retry
- MsgBox_Ignore
- MsgBox_Yes
- MsgBox_No
- MsgBox_Tryagain
- MsgBox_Continue
Global Variables
Global variables affect the drawing, input, or event dispatcher routines. Their names always start with the UI prefix.
- __UI_ContextMenuSourceID
- __UI_ForceRedraw
- __UI_KeyHit
- __CtrlIsDown, __UI_ShiftIsDown, __UI_AltIsDown
- __UI_UnloadSignal
- __UI_KeepScreenHidden
__UI_ContextMenuSourceID
Global variable __UI_ContextMenuSourceID holds the ID of the control associated to a ContextMenu control that triggered the event.
For example, if you have three picture box controls, each associated with the same context menu, let the context menu have an item labeled change-color. When clicked, it will change the associated picture box background to a random color.
Sub __UI_Click (id As Long)
Select Case id
Case Form1
Case PictureBox1
Case PictureBox2
Case PictureBox3
Case MenuItem1
Control(__UI_ContextMenuSourceID).BackColor = _RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Select
End Sub
__UI_ForceRedraw
__UI_ForceRedraw is a global variable that triggers a redraw for all form controls when it's set to True. When it's not set to True, controls are redrawn only when changes in their properties or state are detected.
__UI_ForceRedraw = True
It's automatically set back to False after the next form repaint is executed.
If you want to trigger a redraw for only a specific control, use the Redraw property:
Control(myControl).Redraw = True
__UI_KeyHit
__UI_KeyHit is a global variable of type LONG INTEGER. It holds the scan code of the last key pressed by the user. Positive values mean a key was pressed, while negative values indicate a key was released.
This variable can be accessed anywhere, but it's usually manipulated in KeyPress event handlers, especially for Textbox controls, as it can be used to change the key presses that actually get sent to the control.
__CtrlIsDown, __UI_ShiftIsDown, __UI_AltIsDown
Keyboard modifiers are global variables that hold True when the key they represent is being held down.
- __UI_CtrlIsDown
- __UI_ShiftIsDown
- __UI_AltIsDown
__UI_UnloadSignal
The global variable __UI_UnloadSignal will be set to True if the user requests that the program be closed, either by clicking the X button on the title bar or by hitting Alt+F4 (Windows only).
In an BeforeUnload event, set this variable to False to cancel the quit request.
__UI_KeepScreenHidden
The global variable __UI_KeepScreenHidden can be set to True if you don't want InForm to show the main form immediately, which is useful when your program needs to perform any startup routines before the main form can be displayed.
In the BeforeInit event, set this variable to True to avoid showing the form immediately.
Caution:
If you do set __UI_KeepScreenHidden to True, don't forget to use _SCREENSHOW somewhere later in your program, or your main form will never be displayed and your program will keep running as a hidden window.
__UI_DoEvents __UI_Delay
InForm runs a main loop that processes input and redraws the form. While one of your events is running, that loop is waiting for it to return, so the form isn't updated. Most events return quickly and you don't need to do anything. For events that take longer:
'Inside a long loop, keep the form responsive (other events can fire meanwhile):
DO
'...one step of your work...
__UI_DoEvents
LOOP UNTIL done
'Wait while the form keeps being redrawn (use it instead of _DELAY in events,
'so changes made before the wait show up on screen):
Caption(StatusLB) = "Thinking..."
__UI_Delay .5
For speed-critical calculations, simply don't call either: the form stays as it is until your event returns.