Define a frame
- Last Updated: December 14, 2023
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
Next is a section marked Frame Definitions, where the window’s one
frame is defined:
|
Here the code defines the position of each object in the frame. The exact position of the objects depends on how you laid them out in the design window. The four buttons are all at row position 2.19, counting in full character units.
Next come the fields from the Customer table. There are no
DEFINE statements for these because the field definitions are taken
automatically from the Data Dictionary definitions for the Customer
fields.
Then the frame definition places the browse control at column 8 of row 10.67.
WITH clause, where it sets the
following frame attributes:- 1 DOWN — You remember from “Using Basic ABL Constructs,”
that the kind of ABL frame you get from a
FOR EACHblock with aDISPLAYstatement in it is a down frame that displays multiple records in a report-like format. Frames in a graphical application are typically one down frames, which display only one instance of the objects defined for the frame. In this case, the browse control is a single GUI object that takes the place of the multi-line down frame in the older interface style that’s designed for character terminals. - NO-BOX, OVERLAY, NO-UNDERLINE, THREE-D — These all define various visual characteristics of the frame and are self-explanatory.
- KEEP-TAB-ORDER — This attribute keeps language statements
such as the
ENABLEstatement you saw in enable_UI from changing the tab order of the fields. - AT COLUMN 1 ROW 1 — This position is relative to the window the frame is in. The objects in the frame are positioned relative to the frame (their container), and the frame is positioned relative to its container (the window).
- SIZE 80 BY 20.81 — This is the size of the whole frame in characters.
For more information on any of the frame attributes, see their descriptions under the Frame phrase entry in the ABL Reference.
Following the Frame Definition section are the
Procedure Settings, which are specially formatted
comments with information the AppBuilder uses internally. You should never edit special
sections like this one.