3.68 DM_SetVectorValue
Mit Hilfe dieser Funktion können Attribute gesetzt werden, die bei einem Objekt mehrfach vorkommen, sog. "vektorielle Attribute".
DM_Boolean DML_default DM_EXPORT DM_SetVectorValue
(
DM_ID objectID
DM_Attribute attr,
DM_Value *firstindex,
DM_Value *lastindex,
DM_VectorValue *values,
DM_Options options
)
Parameter
-> DM_ID objectID
Dieser Parameter beschreibt das Objekt, dessen Attribut Sie ändern möchten.
-> DM_Attribute attr
Dieser Parameter bezeichnet das Attribut, das gesetzt werden soll.
-> DM_Value *firstindex
Über diesen Parameter wird gesteuert, welcher Bereich des Inhalts durch diese Funktion modifiziert werden soll. Dabei wird in diesem Parameter der Startpunkt des Bereichs definiert. Dabei muss für ein eindimensionales Attribut der Typ in der DM_Value-Struktur auf DT_integer gesetzt und der Integer-Wert in der Union mit dem Startwert belegt werden. Für ein zweidimensionales Attribut muss der Typ in der DM_Value-Struktur auf DT_index gesetzt und der Index-Wert in der Union mit dem Startwert belegt werden. Hierbei wird in index.first die Zeile, in index.second die Spalte eingetragen.
Anmerkung
Wenn dieser Parameter ein NULL-Pointer ist, hat der Startpunkt folgende Defaults:
integer = 1 |
|
integer = 1 |
|
index.first = 1, index.second = 1 |
|
integer = 1 |
-> DM_Value *lastindex
Steuert, welcher Bereich des Inhalts durch diese Funktion modifiziert werden soll. In diesem Parameter wird der Endpunkt des Bereichs definiert. Dabei muss für ein eindimensionales Attribut der Typ in der DM_Value-Struktur auf DT_integer gesetzt und der Integer-Wert in der Union mit dem Endewert belegt werden. Für ein zweidimensionales Attribut muss der Typ in der DM_Value-Struktur auf DT_index gesetzt und der Index-Wert in der Union mit dem Endewert belegt werden. Hierbei wird in index.first die Zeile, in index.second die Spalte eingetragen.
Anmerkung
Wenn dieser Parameter ein NULL-Pointer ist, wird der Endpunkt durch die Größe des neuen Vektors definiert. Das Attribut der Objekte wird hinter dem letzten modifizierten Eintrag angeschnitten, z.B.
integer = Object.itemcount |
|
integer = Object.itemcount |
|
index.first = object.rowcount, index.second = object.colcount |
|
Integer = Object.itemcount |
-> DM_VectorValue *values
Zeiger auf die Werte, die gesetzt werden sollen. Über das Feld type in der DM_VectorValue Struktur wird gesteuert, welchen Datentyp die einzelnen Werte haben.
Über das Feld count in der DM_VectorValue Struktur wird gesteuert, wie viele Werte in dem Vektor enthalten sind.
-> DM_Options options
Über diesen Parameter wird gesteuert, ob der Dialog Manager durch das erfolgreiche Setzen des Attributes die Regelbearbeitung auslösen soll oder nicht.
Option |
Bedeutung |
---|---|
Diese Option bedeutet, dass der Funktionsaufruf keine internen Ereignisse auslösen soll. Wenn dieses Flag gesetzt ist, kann vor allem bei vielen Attribut-Änderungen durch die Anwendung viel Performance gewonnen werden. |
|
Diese Option bedeutet, dass der Funktionsaufruf die internen Ereignisse auslösen soll. Dadurch werden Regeln ausgelöst, die für dieses Objekt definiert sind und auf das Ändern des angegebenen Attributes reagieren. |
|
Diese Option besagt, dass der angegebene String, bevor er dem Objekt zugewiesen wird, in die aktuell eingestellte Sprache übersetzt werden soll. Dies geht nur, wenn der Text bereits intern vorhanden ist und eine Übersetzung dafür vorliegt. |
Rückgabewert
TRUE |
Die Attribute konnten erfolgreich gesetzt werden. |
FALSE |
Mindestens ein Attribut konnte nicht gesetzt werden. |
Beispiel
Einer Listbox soll ein neuer Inhalt gesetzt werden.
void DML_default DM_ENTRY SetVector __1((DM_ID, lb)){ DM_Value first, last;
DM_VectorValue vec;
char *list[9]
list[0] = "V_1";
list[1] = "V_2";
list[2] = "V_3";
list[3] = "V_4";
list[4] = "V_5";
list[5] = "V_6";
list[6] = "V_7";
list[7] = "V_8";
list[8] = "V_9";
/*
** Setzen der Start- und Endezeile
** Inhalt der Zeile 1 bis 9 wird durch den neuen Inhalt
** ersetzt, Rest bleibt unverändert
*/
first.type = DT_integer;
first.value.integer = 1;
last.type = DT_integer;
last.value.integer = 9;
/* Setzen der Anzahl von Zeilen, die gesetzt werden soll */
vec.type = DT_string;
vec.count = 9;
vec.vector.stringPtr = list;
DM_SetVectorValue(lb, AT_content, &first, &last, &vec,
DMF_ShipEvent);
}
Siehe auch
Objekte listbox, poptext, tablefield, treeview