3.64 DM_SetMultiValue
Mit Hilfe dieser Funktion werden Sie in die Lage versetzt, mehrere Attribute von verschiedenen DM-Objekten in einem Funktionsaufruf zu setzen. Diese Funktion sollte daher v.a. im Zusammenhang mit dem verteilten DM eingesetzt werden, da sie Netzwerkbelastung deutlich reduziert.
Die dabei zulässigen Attribute für den jeweiligen Objekttyp entnehmen Sie bitte der „Objektreferenz“.
DM_Boolean DML_default DM_EXPORT DM_SetMultiValue
(
DM_MultiValue *values,
DM_UInt count,
DM_ID dialogID,
DM_String pathname,
DM_Options options
)
Parameter
<-> DM_MultiValue *values
In diesem Parameter wird eine Liste von Attributen und Objekten übergeben, die gesetzt werden sollen. Ist dabei das Element in der Struktur für das Objekt auf 0 gesetzt, wird das im Parameter pathname beschriebene Objekt genommen. Die Liste muss dabei mindestens die im Parameter count angegebene Länge haben.
-> DM_UInt count
Dieser Parameter bezeichnet die Länge des im Parameter values angegebenen Objekt-Attribut-Vektors.
-> DM_ID dialogID
Dieser Parameter beschreibt den Dialog, zu dem die angegebenen Objekte gehören. Muss nur dann angegeben werden, wenn die ID des Objektes dessen Attribute gesetzt werden sollen, nicht bekannt ist und daher der Name des Objektes im Parameter pathname angegeben ist.
-> DM_String pathname
Dieser Parameter bezeichnet das Objekt, dessen Attribute gesetzt werden soll. Er ist nur belegt, wenn die interne ID von Objekt noch nicht bekannt ist.
-> DM_Options options
Dieser Parameter wird zur Zeit noch nicht benutzt und muss daher mit 0 belegt sein.
Rückgabewert
TRUE |
Attribute konnten erfolgreich gesetzt werden. |
FALSE |
Mindestens ein Attribut konnte nicht gesetzt werden. |
Beispiel
Setzen von Koordinaten bei mehreren Objekten.
void DML_default DM_ENTRY Set __3((DM_ID, o1),
(DM_ID, o2),
(DM_ID, o3))
{
DM_MultiValue val[3];
/* Setzen des jeweiligen Objekts */
val[0].object = o1;
val[1].object = o2;
val[2].object = o3;
/* Setzen des jeweiligen Index-Typs */
val[0].index.type = DT_void;
val[1].index.type = DT_void;
val[2].index.type = DT_void;
/* Setzen des jeweiligen Attributes */
val[0].attribute = AT_xleft;
val[1].attribute = AT_width;
val[2].attribute = AT_xright;
/* Setzen des Datentyps des Attributes */
val[0].data.type = DT_integer;
val[1].data.type = DT_integer;
val[2].data.type = DT_integer;
val[0].data.value.integer = 10;
val[1].data.value.integer = 50;
val[2].data.value.integer = 10;
DM_SetMultiValue(val, 3, dialogID, (char *)0, 0);
}