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:

listbox

integer = 1

poptext

integer = 1

tablefield

index.first = 1, index.second = 1

treeview

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.

listbox

integer = Object.itemcount

poptext

integer = Object.itemcount

tablefield

index.first = object.rowcount, index.second = object.colcount

treeview

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

DMF_Inhibit

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.

DMF_ShipEvent

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.

DMF_XlateString

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