ChildPanelReturnValue()

Opens a child panel of a particular type with a return value.

Synopsis

void ChildPanelReturnValue( string FileName, string PanelName, string ParentName, string ModuleName, dyn_string Parameter, int x, int y, dyn_float &resultFloat, dyn_string &resultText,int type, time timeout=86400);

Parameters

Parameter Meaning
FileName File name of the child panel to be opened
PanelName Name under which the child panel is to be displayed
ParentName Module in which the panel is opened
ModuleName Module in which the panel is to be opened
Parameters Parameters that are passed to the child panel
x, y Position of the child panel
resultFloat Return field for floats
resultText Return field for strings
typ Number of the function called (see list below)

Return Value

None

Description

Opens a child panel of a particular type with a return value. 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.

Internally the appropriate functions are called internally, see there for a more detailed description.

The function opens the specified child panel in the panel Parent Name and in the module ModuleName. The return values are to be transferred in the same way as with ChildPanelOnReturn().

Return values for the fields resultFloat and resultText must be transferred from the child panel to two predefined data points. The value can be set by means of a dpSet. The names of the reserved data points are:

  • "_Ui_<i>.ReturnValue.Float:_original.._value"

  • "_Ui_<i>ReturnValue.Text:_original.._value",

where the number of the current manager is to be used for i, for example,

"_Ui_2.ReturnValue.Text:_original.._value"

If an empty string is specified for a Parent Name or Module Name, the current panel / module is used.

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

The panel "ChildPanel" is opened as a modal panel (type 2) in the current panel and module. The function also passes the dollar parameters "first" and "example" to the child panel.

main()
{
  dyn_float dreturnf;
  // Variablen für die Rückgabewerte vom Childpanel
  dyn_string dreturns;
  string strvar = "example";
  int x, y;
  x = 300;
  y = 100;
  ChildPanelReturnValue("ChildPanel.pnl","Testpanel", rootPanel(), myModuleName(),
  makeDynString("$p1:first", "$p2:"+strvar),x,y,dreturnf,dreturns,2);
  // The code below is executed first when the child panel is closed
  DebugN("Ausgabe der Rückgabewerte", dreturnf, "und", dreturns);
  //Show the return values
}

The values are set in the child panel "ChildPanel". When the panel is closed they are passed to the root (parent) panel. Since you passed dollar parameters, you can , for example, call 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;
  wert1[1] = 66.23;
  //set the value of the variable value1
  wert2[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

Intern, panel.ctl

Availability

UI