The Event Handler compiler supports a shorthand syntax for setting and retrieving values of properties. The following examples summarize the shorthand syntax notation. The shorthand notation syntax is not case sensitive. Quotation marks are not used around property names.
The examples on this page apply only for BASIC+ code placed in window events, such as the CLICK event of a button. This notation will produce a compiler error for BASIC+ code not running in a window context, such as a stored procedure. |
The following information describes the symbols used in the shorthand notation:
Symbol | Symbol Name | Symbol Function |
---|---|---|
-> | dash + greater than symbol | Get_Property(), Set_Property() |
. | period | used current window name |
@ | "at" symbol | value of a variable name |
@@ | double "at" symbol | default property token |
Retrieving a property ( Get_Property() ):
var = windowName.controlName->propertyName | ;* Basic usage |
var = .controlName->propertyName | ;* Path prefix usage |
var = @variable->@variable | ;* Variable usage |
var = @variable->propertyName | ;* Variable usage |
var = .controlName->@@ | ;* "Default Property" Token usage |
Setting a property ( Set_Property() ):
windowName.controlName->propertyName = "value | ;* Basic usage |
.controlName->propertyName = "value" | ;* Path prefix usage |
@variable->@variable = "value" | ;* Variable usage |
@variable->propertyName = "value" | ;* Variable usage |
controlName->@@ = "value" | ;* "Default Property" Token usage |
You can use the fully qualified control name and the actual property name as follows to extract the value of the property of a control in a window event handler.
SYNTAX: | var = windowName.controlName->propertyName |
EXAMPLE: | state = CUST_ENTRY.STATE->text |
EQUIVALENT: | state = Get_Property(@window:".STATE","TEXT") |
This example extracts the value of the TEXT property from the STATE control in the CUST_ENTRY window, and places it in the "state" variable.
SYNTAX: | windowName.controlName->propertyName = var |
EXAMPLE: | CUST_ENTRY.STATE->text = "NJ" |
EQUIVALENT: | state = Set_Property(@window:".STATE","TEXT", "NJ") |
This example sets the value of the TEXT property of the STATE control in the CUST_ENTRY window to "NJ".
An alternative to using the fully qualified control name is to allow the event handler compiler to supply the name of the current window as the control name qualifier. The "." (period) character in the string enables this functionality. This technique shortens the length of the character string you specify in coding.
SYNTAX | var = .controlName->propertyName |
EXAMPLE | state = .state->text |
EQUIVALENT | state = Get_Property(@window:".STATE","TEXT") |
This example extracts the value of the TEXT property from the STATE control in the current window, and places it in the "state" variable. Of course, a control with the name "STATE" should exist in the current window.
SYNTAX: | .controlName->propertyName = var |
EXAMPLE: | .state->text = "NJ" |
EQUIVALENT: | state = Set_Property(@window:".STATE","TEXT", "NJ") |
This example sets the value of the TEXT property of the STATE control in the current window to "NJ". Of course, a control with the name "STATE" should exist in the current window.
You can place a control name and/or property name into a variable and then use the variable in the shorthand notation. The "@" (at) character in the string enables this functionality.
SYNTAX: | var = @variable->@variable var = @variable->propertyName |
EXAMPLE 1: | ctrlName = @window:".STATE" state = @ctrlName->text |
EXAMPLE 2: | ctrlName = @window:".STATE" propName = "TEXT" state = @ctrlName->@propname |
EQUIVALENT: | state = Get_Property(@window:".STATE","TEXT") |
In both examples, the variable "state" receives the value of the TEXT property of the STATE control in the current window.
SYNTAX: | @variable->@variable = var @variable->propertyName = var |
EXAMPLE 1: | ctrlName = @window:".STATE" @ctrlName->text = "NJ" |
EXAMPLE 2: | ctrlName = @window:".STATE" propName = "TEXT" @ctrlName->@propname = "NJ" |
EQUIVALENT: | state = Set_Property(@window:".STATE","TEXT", "NJ") |
This example sets the value of the TEXT property of the STATE control in the current window to "NJ". Of course, a control with the name "STATE" should exist in the current window.
The @window variable may be referenced indirectly, by appending an @ sign, just like any other control name. The following code line, in a window event, reads the VISIBLE property of the window and assigns it to the variable winvisible. For example, winvisible = @@window->visible |
The default property token can be substituted for a variable representing the property name. The default property token is the "@" (at) character.
SYNTAX: | var = .controlName->@@ |
EXAMPLE: | state = .state->@@ |
EQUIVALENT: | state = Get_Property(@window:".STATE","DEFPROP") |
The variable "state" receives the value of the default property of the STATE control in the current window.
SYNTAX: | .controlName->@@ = var |
EXAMPLE: | .state->@@ = "NJ" |
EQUIVALENT: | state = Set_Property(@window:".STATE","DEFPROP", "NJ") |
This example sets the value of the DEFPROP property of the STATE control in the current window to "NJ". Of course, a control with the name "STATE" should exist in the current window.
A property in another window can be referenced without the @ prefix. Thus the following code gets the TEXT property of the window called APPBACKUP and assigns it to the variable appbackup_window_title. For example, appbackup_window_title = APPBACKUP->Text |
Because of the way this syntax works for retrieving property values, it can be applied easily in logical expressions. In the following example you can see the its application for setting a control property.
// If a the control in the current window has a null value in the TEXT property then set its TEXT property value to "NJ" if .STATE->TEXT = "" then .state->text = "NJ" end |