3.13 DM_CreateObject

Jede Instanz oder jedes Modell innerhalb eines Dialogs kann mit dieser Funktion generiert werden. Der erste Parameter beschreibt den Typ des zu generierenden Objekts (Pushbutton, Fenster etc.); der zweite Parameter beschreibt den Vater des neuen Objekts, der letzte beschreibt die Art (Instanz/Modell) des neuen Objekts.

DM_ID DML_default DM_EXPORT DM_CreateObject
(
  DM_ID classtagOrModel,
  DM_ID parentID,
  DM_Options options
)

Parameter

-> DM_ID classtagOrModel

Dieser Parameter beschreibt die Art des neuen Objekts. Die notwendigen Definitionen werden von der IDMuser.h miteinbezogen.

Die folgenden Definitionen werden akzeptiert:

  • DM_ClassCanvas
  • DM_ClassCheck
  • DM_ClassControl
  • DM_ClassEditext
  • DM_ClassGroupbox
  • DM_ClassImage
  • DM_ClassImport
  • DM_ClassListbox
  • DM_ClassMenubox
  • DM_ClassMenuitem
  • DM_ClassMenusep
  • DM_ClassMessagebox
  • DM_ClassModule
  • DM_ClassNotebook
  • DM_ClassNotepage
  • DM_ClassPoptext
  • DM_ClassProgressbar
  • DM_ClassPush
  • DM_ClassRadio
  • DM_ClassRecord
  • DM_ClassRect
  • DM_ClassScroll
  • DM_ClassSpinbox
  • DM_ClassSplitbox
  • DM_ClassStatext
  • DM_ClassStatusbar
  • DM_ClassTablefield
  • DM_ClassTreeview
  • DM_ClaasToolbar
  • DM_ClassTimer
  • DM_ClassWindow

-> DM_ID parentID

In diesem Parameter wird der Vater des neu zu generierenden Objektes angegeben. Für das Anlegen eines dialog Objekts muss dieser Parameter NULL sein.

-> DM_Options options

Für diese Funktion sind verschiedene Optionen möglich, die auch mit einem "oder" (|) verknüpft angegeben werden können.

Option

Bedeutung

DMF_CreateModel

Ist diese Option gesetzt, so soll mit Hilfe dieser Funktion ein neues Modell generiert werden.

DMF_CreateInvisible

Ist diese Option gesetzt, soll das neu generierte Objekt unabhängig von der Definition in der angegebenen Vorlage unsichtbar generiert werden.

DMF_InheritFromModel

Diese Option muss genau dann gesetzt sein, wenn in dem Parameter classtagOrModel die DM_ID eines Modells angegeben ist. Damit wird der Funktion angegeben, dass von diesem Modell eine neue Instanz generierter werden soll. Wenn es sich dabei um ein hierarchisches Modell handelt, so werden auch dessen Kinder in das neue Objekt generiert.

Rückgabewert

ID != 0

Objekt konnte generiert werden.

ID = 0

Objekt konnte nicht generiert werden.

Beispiel

Von einer C-Funktion aus soll eine neue Instanz eines Fenster-Modells generiert werden.

void DML_default DM_ENTRY CreateNewInstance

(

    DM_ID Modell,

    DM_ID DialogID

)

{

  DM_ID NewObject;

  DM_Value data;

 

  if ((NewObject = DM_CreateObject (Modell, DialogID,

    DMF_InheritFromModel | DMF_CreateInvisible)) != (DM_ID) 0)

  {

    /* Setzen der Daten im neu generierten Fenster */

 

    /* Abschließend Fenster sichtbar machen */

    data.type = DT_boolean;

    data.value.boolean = TRUE;

    DM_SetValue(NewObject, AT_visible, 0, &data, 0);

  }

}

Siehe auch

Eingebaute Funktion create() im Handbuch „Regelsprache“

Methode :create()