Creates a dynamic object, such as a widget
object.
Note: Does not apply to SpeedScript programming.
Syntax
CREATE { BUTTON | COMBO-BOX
| CONTROL-FRAME | DIALOG-BOX
| EDITOR | FILL-IN
| FRAME | IMAGE
| MENU | MENU-ITEM
| RADIO-SET | RECTANGLE
| SELECTION-LIST | SLIDER
| SUB-MENU | TEXT
| TOGGLE-BOX | WINDOW
| VALUE ( string-expression )
} handle [ IN WIDGET-POOL pool-name ]
[ ASSIGN { attribute = expression } ... ]
[ trigger-phrase ]
|
- VALUE ( string-expression )
- An expression of type CHARACTER that evaluates to the type of object
you want to create (for example, BUTTON) with any combination of
uppercase and lowercase characters.
-
handle
- A variable of type HANDLE that the AVM sets for the new widget.
- IN WIDGET-POOL pool-name
- Specifies the widget pool in which the object is created. If
you do not specify a widget pool, the object is created in the current
default widget pool.
- ASSIGN {attribute = expression}...
- Assigns specified values to attributes of the object. The attribute parameter
must be the name of a valid attribute for the object and expression must
evaluate to a valid value for that attribute.
-
trigger-phrase
- A trigger phrase associated with the object. For more information, see
the Trigger phrase reference entry.
Example
This
procedure creates a dynamic button that displays a list of customer names:
r-dynbut.p
DEFINE VARIABLE but1 AS HANDLE NO-UNDO.
DISPLAY "Dynamic Button Example" SKIP(3) WITH FRAME x SIDE-LABELS.
OPEN QUERY all-custs FOR EACH Customer.
GET FIRST all-custs.
DISPLAY Customer.Name WITH FRAME x.
CREATE BUTTON but1 ASSIGN
ROW = 3
COLUMN = 5
LABEL = "Next Customer"
FRAME = FRAME x:HANDLE
SENSITIVE = TRUE
VISIBLE = TRUE
TRIGGERS:
ON CHOOSE DO:
GET NEXT all-custs.
DISPLAY Customer.Name WITH FRAME x.
END.
END TRIGGERS.
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
|
Notes
- Attribute
assignments you specify in the CREATE widget statement are processed
in the order they appear. In some cases you must supply the attributes
in proper order. For example, you cannot set the SENSITIVE or VISIBLE
attributes for a field-level widget until you have set its FRAME
attribute.
- If you are setting the FORMAT attribute and specifying an initial SCREEN-VALUE
for the widget, assign the FORMAT before the SCREEN-VALUE. Otherwise,
the default format is applied to the SCREEN-VALUE which might cause
truncation or other formatting errors.
- You can use the ASSIGN option to assign a widget ID value to
the WIDGET-ID attribute for
this object. If you have enabled application-defined widget IDs
in your ABL GUI application, by specifying the Use Widget ID (-usewidgetid)
startup parameter, then the AVM uses this widget ID when it creates
the widget at run time, instead of using the widget ID it normally
generates by default. If you have not enabled application-defined
widget IDs, then the AVM ignores this option setting at run time.
For
more information about the WIDGET-ID attribute, see its reference
entry in the Handle Attributes and Methods Reference. For more information about the Use Widget
ID (-usewidgetid) startup parameter, see OpenEdge
Deployment: Startup Command and Parameter Reference.
- If you create a frame to use as a DDE frame, you must realize
the frame (set its VISIBLE attribute to TRUE) before using it as
a conversation end-point. If you want the DDE frame to remain invisible
during its use in a DDE conversation, set its HIDDEN attribute to
TRUE after realizing the frame. For information on DDE frames, see OpenEdge
Development: Programming Interfaces.