System object datatypes
Objects as datatypes
System object datatypes are specific to PowerScript. You view
a list of all the system objects by selecting the System tab in
the Browser.
In building PowerBuilder applications, you manipulate objects
such as windows, menus, CommandButtons, ListBoxes, and graphs. Internally, PowerBuilder
defines each of these kinds of objects as a datatype. Usually you do
not need to concern yourself with these objects as datatypes—you
simply define the objects in a PowerBuilder painter and use them.
However, sometimes you need to understand how PowerBuilder
maintains its system objects in a hierarchy of datatypes. For example,
when you need to define instances of a window, you define variables
whose datatype is window. When you need to create an instance of
a menu to pop up in a window, you define a variable whose datatype
is menu.
PowerBuilder maintains its system objects in a class hierarchy.
Each type of object is a class. The classes form an inheritance
hierarchy of ancestors and descendants.
Examples
All the classes shown in the Browser are actually datatypes
that you can use in your applications. You can define variables
whose type is any class.
For example, the following code defines window and menu variables:
|
1 |
window mywin |
|
1 |
menu mymenu |
If you have a series of buttons in a window and need to keep
track of one of them (such as the last one clicked), you can declare
a variable of type CommandButton and assign it the appropriate button
in the window:
|
1 |
// Instance variable in a window |
|
1 |
commandbutton LastClicked |
|
1 |
// In Clicked event for a button in the window. |
|
1 |
// Indicates that the button was the last one |
|
1 |
// clicked by the user. |
|
1 |
LastClicked = This |
Because it is a CommandButton, the LastClicked variable has
all the properties of a CommandButton. After the last assignment
above, LastClicked’s properties have the same values as
the most recently clicked button in the window.
To learn more about working with instances
of objects through datatypes, see “About objects “.