ChildPanelOnRelativModalReturn()

Opens a modal child panel relative to the calling object, with a return value.

Synopsis

ChildPanelOnRelativModalReturn(string FileName, string PanelName, dyn_string Parameter, int x , int y, dyn_float &resultFloat, dyn_string &resultText);

Parameters

Parameter Meaning
FileName File name of the child panel to be opened
PanelName Name under which the child panel is to be displayed
Parameters Parameters for transfer to the child panel
x, y Position of the child panel
resultFloat Return field for floats
resultText Return field for strings
Note: If the user does not close the panel, the function returns the value anyway after a timeout of 24 hours.

Return Value

Depending on the parameters set, see standard dialogs for example.

Description

Opens a child panel with return values. The position of the panel is relative to the calling object, the coordinates are specified via offsetX and offsetY. The return values are handled like in the function ChildPanelOnReturn(). Before the panel is opened a check is made as to whether this panel is already open (isPanelOpen()). The size ratio between child and parent panel is 1 (scale = 1). If the size of the parent panel is changed, the child panel is not scaled to the new size.

A child panel can not be resized. The only exception to this is the use of Layout Management in the child panel.

When a modal child panel is opened from a modal child panel, the opened child panel is modal application wise, ie. modal to the current UI.

This function cannot be used in panel events.

Example

Opens the ChildPanel.pnl relative to the calling object and with return values.

main()
{
  dyn_float dreturnf;
  dyn_string dreturns;
  string strvar = "example";
  int x, y;
  x = 300;
  y = 100;
  ChildPanelOnRelativModalReturn("ChildPanel.pnl",
  "Testpanel", makeDynString("$p1:first", "$p2:"+strvar), x, y,
  dreturnf, dreturns);
  DebugN("Return values", dreturnf);
  //The return values from the child panel
  DebugN(dreturns);
}

Example

Since you passed dollar parameters, you can call , for example,

DebugN($p1); and

DebugN($p2); in the child panel.

The first definition DebugN($p1); shows the string "first"; and the second definition the string "example";.

main()
{
  dyn_float value1;
  dyn_string value2;
  value1[1] = 66.23;
  //set the value of the variable value1
  value2[1] = "abc"
  //set the value of the variable value2
  /* Set the values for the main panel (return values).
  The values are written to the variables dreturnf and dreturns */
  dpSet("_Ui_"+myManNum()+ ".ReturnValue.Float:_original.._value",value1);
  dpSet("_Ui_"+myManNum()+ ".ReturnValue.Text:_original.._value",value2);
  DebugN($p1);
  DebugN($p2);
}

Assignment

panel.ctl

Availability

UI