H
(for Halt), execution halts. You can set the status to H
either by assigning the _STATUS_ variable in the SCL or by calling the FRAME entry's
_setStatus method. Likewise, a STOP statement in the frame SCL program can halt the frame application,
interrupting the normal flow of control. However, in both of these cases, all _term
methods execute.
Method
|
Class
|
Description
|
---|---|---|
_bInit
|
Frame
|
a _bInit method that runs at build time when you open the FRAME entry, first for the
frame, and then
for each component. The Frame object and each component must successfully execute this method (and its parent's definition)
to be usable.
|
_bInit
|
Object
|
initializes each object in the FRAME entry.
|
_bPostInit
|
Frame
|
performs postprocessing after the _bInit method for the Frame object. Also runs the
_bPostInit for all the components; _bPostInit for non-visual components
runs first, followed by _bPostInit for visual components.
|
_bPostInit
|
Object
|
performs postprocessing on objects after the _bInit method. You should override this
method rather than _bInit if your initialization code refers to any objects
besides _SELF_.
|
_bUpdate
|
Frame, Widget
|
updates the Frame object or widget with any values that you might have changed in the Attributes window. For your own
GUI subclasses, you might need to override this method to execute code after the user
closes the Attributes window.
This method is used only by legacy classes. Any object that uses the Properties window or a custom Properties window does
not invoke this method.
|
_bTerm
|
Object
|
terminates the components in the FRAME entry at build time. You only need to override
this method for cleanup purposes. For example, you might need to delete SCL lists
or non-visual components that you create during _bInit or _bPostInit.
|
_bTerm
|
Frame
|
terminates the Frame object at build time. You only need to override this Frame class method for cleanup purposes. For example, you might need to delete SCL lists or non-visual
components that you create during _bInit or _bPostInit.
|
Method
|
Class
|
Description
|
---|---|---|
_init
|
Frame
|
initializes all components
for the frame.
|
_init
|
Object
|
initializes the Frame object and all components.
|
_initLabel
|
Frame
|
runs the INIT section of the FRAME entry's SCL program.
|
_postInit
|
Frame
|
performs additional processing for the Frame object after _initLabel has run. Also
runs the _postInit for all components; non-visual
components are run first, followed by visual components.
|
_postInit
|
Object
|
performs additional
processing on all widgets after the INIT section has run.
|
_objectLabel
|
Widget
|
runs the object label section in the FRAME entry's SCL program.
|
_select
|
Widget
|
responds to a user selection
or modification.
|
_mainLabel
|
Frame
|
runs the MAIN section of the FRAME entry's SCL program.
|
_refresh
|
Widget
|
redraws a widget without updating its data.
|
_preTerm
|
Frame
|
performs additional
processing before _termLabel is run.
|
_preTerm
|
Widget
|
performs additional
processing before the TERM section runs.
|
_termLabel
|
Frame
|
runs the TERM section of the FRAME entry's SCL program.
|
_term
|
Frame
|
deletes the Frame object. Also runs the _term for non-visual components. The _term
for visual components should
have already run by this point. If this method runs the _term for visual components,
then a problem exists with the visual components
and a warning message appears.
|
_term
|
Object
|
deletes an object and the SCL list that is used to represent the object.
|
1 | The _init methods for the FRAME entry and its components execute.
The _init for non-visual objects is run first, followed by the _init
for visual objects. The _init for visual objects follows a specific
window order. See Example: Order of Processing for Multiple Window Components for more information.
Event handlers are installed and drag and drop sites are also set up at this point.
|
2 | The statements in the INIT section of the SCL program execute via the _initLabel method. |
3 | The _postInit methods for the FRAME entry and its components execute. Any attribute links are also synchronized at this point. That is, _getAttribute is invoked on the
source attribute (to access the attribute value), and then _setAttrValue is called
on the target attribute.
Note: Because an object cannot
be initialized twice, the _init and _postInit methods are not permitted
after the object is initialized. After the first _init method is sent
to an object, any subsequent _init methods result in an SCL program
halt. After the first _postInit method is sent to an object, the FRAME
entry will not send additional _postInit methods, but instead sends
_refresh methods.
|
4 | When one of these conditions is met:
The following steps
occur (these steps are not illustrated in the figure):
|
5 | All methods that were queued in step 4 execute. (Only
5A and 5B are illustrated in the figure.)
|
6 | If any component is marked as being in error (after the labels or the _select, _putRowLabel, or _putRow methods execute) and CONTROL ALWAYS, CONTROL ALLCMDS, or CONTROL ENTER is not in effect, the FRAME entry returns control to the user and awaits the next modification or command. |
7 | Unless one of the following conditions is met, the statements in the _mainLabel method
execute:
|
8 | If the FRAME entry is not ending, each FRAME entry component that has been modified
or marked as needing refreshment is refreshed by invoking
its _refresh method. An object cannot receive a _refresh method unless it is completely
initialized (that is, the
object's _init and _postInit methods must have run). If a _refresh method is sent
to an object before its _postInit method runs, the _refresh method is converted to
a _postInit method. When you use a REFRESH statement or send a _refresh method to
a FRAME entry before the FRAME entry receives a _postInit method, a _postInit method
is sent to the FRAME entry, and then the refreshment proceeds.
Extended tables receive the _refresh method first, and then the other objects receive
a _refresh method. Extended tables are
refreshed by executing their _getRowLabel and _getRow methods and refreshing all components
within the rows. This action is performed either for all rows or only for rows that
have been modified, depending on the settings of the table's
Putrow Options attribute. The extended table updates the _CURROW_ system variable to reflect the
logical
row number for each row that it processes. _CURROW_ is added as an automatic instance variable of both the extended table and the objects within the table.
|
9 | If you issue the END, CANCEL, ENDSAS, BYE, or RETURN command, program termination begins. |
R
(to resume rather than
terminate) under certain circumstances. For example, empty required
fields are not allowed, and they prevent normal program termination
except after a CANCEL, ENDSAS, BYE, or RETURN command.
R
or H
via the _setStatus method of the Frame class, the _termLabel method is executed.
If a statement in the TERM section sets _STATUS_
to R
, the program resumes
instead of terminating, unless the command issued is ENDSAS, BYE,
CANCEL, or RETURN. The TERM label does not execute if an ENDSAS, BYE,
or ENDAWS command is issued.
R
status, the FRAME entry window closes and the _term method executes for each object
in the entry and for the FRAME entry itself.
NOTE: Intermediate code has been removed.