Object inquiry functions are used to discover a specified object's attributes and position. These functions are:
ancestry of |
priority of |
background at |
row delimiter |
background of |
row grid is visible |
border of |
row is selected |
cell |
row size |
checked in group |
selectability of |
column delimiter of |
selected columns |
column grid is visible |
selected line from |
column is readonly |
selected rows |
column is resizeable |
text of |
column is selected |
text size of column |
column modifiability |
textual |
column size of |
textual row of |
edit key of |
top of |
edit mode of |
type of |
exists |
bottom of |
foreground at |
left of |
foreground of |
right of |
format of column |
type of column |
handle of |
visibility of |
heading of column |
width of column |
helpid of |
window xposition of |
is checked |
window yposition of |
is enabled |
window xsize [of] |
is maximized |
window ysize [of] |
is minimized |
xcursor of |
is readonly |
ycursor of |
is resizeable |
xmiddle of |
is restored |
ymiddle of |
is visible |
xposition |
line size of |
yposition |
name of column |
xsize of |
parameter of |
ysize of |
position of column |
|
The functions that return integers can be used as operands in arithmetic expressions, or can be compared to integer values in relational expressions. The functions that return strings can be used anywhere a string value is expected.
Be sure to define an object's position (and ancestry, if there is any) before you apply any object inquiry function to that object. If you have a response that deletes a parent object, you cannot reference any of its children, because when a parent is deleted, so are its children. Therefore, if you try to reference any of the inquiry functions for those deleted children, you will receive an error message. (Chapter 2 describes the ancestry attribute.)
The object inquiry functions xsize, ysize, line size of, and column size of require internal calculations that are not made until runtime, and therefore cannot be included in object definitions. For example, the following statements would return incorrect results at compile time, because xsize and ysize, which calculate the coordinates of the region News, are in an object definition:
textual region News window size 10 columns 10 lines
at position 100 200
green graphical region RegionA
size (xsize of News) (ysize of News) ...# WRONG
To include a function in the definition of an object, create the object in an add statement (executed at runtime), such as:
textual region News window size 10 columns 10 lines
at position 100 200
response to start
add region
RegionA size (xsize of News) (ysize of News) ...
For those object inquiry functions listed above that are followed by the optional keyword [of], you can omit the object name when the function is specified in a drawing statement. In this case, the object defaults to the current object. For example:
add to Logo
move to top # equivalent to "top of Logo"
...
or:
add region Logo ...
move to xmiddle # equivalent to "xmiddle of Logo"
...
For clarity, always specify the object name for the function, even if the syntax allows you to omit it. For example:
add to Logo
move to top of Logo
...