Syntax 1: For windows of a known datatype
Description
Opens a window object of a known datatype. OpenWithParm displays
the window and makes all its properties and controls available to
scripts. It also stores a parameter in the system’s Message
object.
Applies to
Window objects
Syntax
1 |
OpenWithParm ( windowvar, parameter {, parent } ) |
Argument |
Description |
---|---|
windowvar |
The name of the window you want to display. You can |
parameter |
The parameter you want to store in the Message
|
parent (child and pop-up windows only) |
The window you want make the parent of the child or |
Return value
Integer. Returns 1 if it succeeds and -1 if an error occurs. If
any argument’s value is null, OpenWithParm returns null.
Usage
The system Message object has three properties for storing data.
Depending on the datatype of the parameter specified for OpenWithParm,
your scripts for the opened window would check one of the following
properties.
Message object property |
Argument datatype |
---|---|
Message.DoubleParm |
Numeric |
Message.PowerObjectParm |
PowerObject (PowerBuilder objects, including |
Message.StringParm |
String |
In the opened window, it is a good idea to access the value passed
in the Message object immediately because some other script may use the
Message object for another purpose.
Avoiding null object references
When you pass a PowerObject as a parameter, you are passing a
reference to the object. The object must exist when you refer to it
later or you will get a null object reference, which causes an error.
For example, if you pass the name of a control on a window that is
being closed, that control will not exist when a script accesses the
parameter.
Passing several values as a structure
To pass several values, create a user-defined structure to hold
the values and access the PowerObjectParm property of the Message
object in the opened window. The structure is passed by value, not by
reference, so you can access the information even if the original
structure has been destroyed.
See also the usage notes for Open, all of which apply to
OpenWithParm.
Examples
This statement opens an instance of a window named w_employee and
stores the string parameter in Message.StringParm. The script for the
window’s Open event uses the string parameter as the text of a
StaticText control st_empname. The script that opens the window has the
following statement:
1 |
OpenWithParm(w_employee, "James Newton") |
The window’s Open event script has the following statement:
1 |
st_empname.Text = Message.StringParm |
The following statements open an instance of a window of the type
w_employee. Since the parameter is a number it is stored in
Message.DoubleParm:
1 2 3 |
w_employee w_to_open integer age = 50 OpenWithParm(w_to_open, age) |
The following statement opens an instance of a child window named
cw_data and makes w_employee the parent. The window w_employee must
already be open. The parameter benefit_plan is a string and is stored in
Message.StringParm:
1 |
OpenWithParm(cw_data, "benefit_plan", w_employee) |
See also