3.35 DM_GetValueIndex

Mit Hilfe dieser Funktion werden Sie in die Lage versetzt, Attribute mit zwei Indizes zu erfragen.

Die dabei zulässigen Attribute für den jeweiligen Objekttyp entnehmen Sie bitte der „Objektreferenz“.

Hinweis

Bei Verwendung in Funktionen, welche Records als Parameter enthalten, beachten Sie bitte die Hinweise im Kapitel „Behandlung von String-Parametern“ und das Kapitel „Hinweis bei Verwendung von DM-Funktionen“ im Handbuch „C-Schnittstelle - Grundlagen“.

DM_Boolean DML_default DM_EXPORT DM_GetValueIndex
(
  DM_ID objectID,
  DM_Attribute attr,
  DM_Value *index,
  DM_Value *data,
  DM_Options options
)

Parameter

-> DM_ID objectID

Dieser Parameter beschreibt das Objekt, dessen Attribut Sie erfragen möchten.

-> DM_Attribute attr

Dieser Parameter beschreibt das Attribut, das Sie von dem Objekt erfragen möchten. Alle zugelassenen Attribute sind in der Datei IDMuser.h definiert.

-> DM_Value *index

Hier kann der Datentyp des Index (enum, index) und dessen Wert angegeben werden.

-> DM_Value *data

In diesem Parameter erhalten Sie den Wert des gesuchten Attributes. Dabei müssen Sie unbedingt beachten, dass Sie das richtige Element aus dieser Union auslesen. Den Datentyp eines jeden Attributes entnehmen Sie bitte der „Attributreferenz“.

-> DM_Options options

Mit Hilfe dieses Parameters wird u.a. gesteuert, in welcher Form Texte vom Dialog Manager aus zurückgeliefert werden, falls das entsprechende Attribut vom Typ Text ist. Folgende Belegungen sind bei diesem Parameter möglich:

Option

Bedeutung

DMF_GetMasterString

Diese Option bedeutet, dass bei textuellen Attributen der String in der Entwicklungssprache zurückgegeben werden soll, unabhängig davon, mit welcher Sprache der Benutzer gerade arbeitet.

DMF_GetLocalString

Diese Option bedeutet, dass bei textuellen Attributen der String in der aktuell eingestellten Sprache zurückgegeben werden soll.

DMF_GetTextID

Diese Option bedeutet, dass bei textuellen Attributen der String als TextID zurückgegeben werden soll. Diese ist dann sinnvoll, wenn der Text einem anderen Objekt zugewiesen werden soll.

DMF_DontFreeLastStrings

Normalerweise werden Strings in einem temporären Puffer an die Anwendung übergeben, der bis zum nächsten Aufruf an den Dialog Manager erhalten bleibt. Sollen Strings länger in der Anwendung gültig sein, muss diese Option DMF_DontFreeLastStrings gesetzt werden. Der Speicher wird erst dann wieder freigegeben, wenn ein Aufruf an eine DM-Funktion ohne diese Option erfolgt und dabei ein String vom DM an die Anwendung zurückgegeben wird.

Rückgabewert

TRUE

Das Attribut konnte erfolgreich erfragt werden.

FALSE

Das Attribut ist für das Objekt nicht zulässig.

Beispiel

Abfragen eines vektoriellen benutzerdefinierten Attributes einer Groupbox oder eines Fensters.

void DML_default DM_ENTRY GetInfo  __1((DM_ID, obj))

{

  DM_Value  attr;

  DM_Value data, index;

  DM_ID groupbox;

 

  DM_GetValue(obj, AT_parent, 0, &data, 0);

  groupbox = data.value.id;

  DM_TraceMessage("\nin GetInfo\n",DMF_Printf);

 

  /*

  ** Holen der Anzahl des benutzerdefinierten Attributes

  */

  if (DM_GetValue(obj, AT_membercount, 0, &data, 0))

    DM_TraceMessage("groupbox.membercount = %ld\n",

        DMF_Printf, data.value.integer);

 

  /*

  ** Setzen des Namens des benutzerdefinierten Attributes

  */

   index.type = DT_string;

   index.value.string = ".StringVec";

   if (DM_GetValueIndex(groupbox, AT_label, &index, &attr, 0))

   {

    DM_Integer n, i;

    DM_GetValueIndex(groupbox, AT_count, &attr, &data, 0);

    n = data.value.integer;

    for (i=1 ; i<=n; i++)

    {

      DM_GetValue(groupbox, attr.value.attribute, i, &data,

        0);

      DM_TraceMessage ("erst attribut%ld.string %s\n",

        DMF_Printf, i, data.value.string);

    }

  }

}

Siehe auch

Eingebaute Funktion getvalue() im Handbuch „Regelsprache“

Methode :get()