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 |
---|---|
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. |
|
Diese Option bedeutet, dass bei textuellen Attributen der String in der aktuell eingestellten Sprache zurückgegeben werden soll. |
|
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. |
|
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()