Verifies that a handle is valid.
An expression that evaluates to a value of type HANDLE. If the handle represents an object that is currently valid, VALID-HANDLE returns TRUE. If the handle is no longer valid (if, for example, some procedure deleted the object), the function returns FALSE.
In the following example, the user creates a window dynamically. The WINDOW-CLOSE trigger uses the VALID-HANDLE function to determine whether the window has been created.
r-valhnd.p
DEFINE VARIABLE mywin AS HANDLE NO-UNDO. DEFINE BUTTON mkwin LABEL "New Window". ENABLE mkwin. ON CHOOSE OF mkwin DO: CREATE WINDOW mywin ASSIGN VISIBLE = TRUE TITLE = "Second Window" MAX-WIDTH-CHARS = 40 MAX-HEIGHT-CHARS = 10. SELF:SENSITIVE = FALSE. END. ON WINDOW-CLOSE OF DEFAULT-WINDOW DO: IF VALID-HANDLE(mywin) THEN DELETE WIDGET mywin. END. WAIT-FOR WINDOW-CLOSE OF DEFAULT-WINDOW. |
In the example, the VALID-HANDLE function returns a TRUE value only if the window has been created (that is, mywin does not have the Unknown value (?)) and the window has not been deleted. Therefore, the DELETE WIDGET statement executes only if mywin is a valid handle.
VALID-HANDLE(handle:PREV-SIBLING) is FALSE when you reach the first handle in the list. VALID-HANDLE(handle:NEXT-SIBLING) is FALSE when you reach the last handle in the list.