Lade...
 

ObjectCombobox, ObjectCbox

ObjectCombobox, ObjectCbox

ObjectCombobox(name~aliasName, flags, x, y, w, h)

Parameter
Parameter   Beschreibung
name * Identifikator oder KLASSE::ausdr
aliasName   ein zusätzlicher Identifikator
flags   Flags
x * Position X (in Minicells)
y * Position Y (in Minicells)
w * Breite (in Minicells)
h * Höhe (in Minicells)
  • - Pflichtparameter

Das Tupel (Klasse, Zugriffsausdruck) definiert eine Abbildung auf Modelldaten (siehe FillWindow, DrainWindow). Mit der ObjectCombobox können Relationen zwischen Objekten dargestellt und interaktiv bearbeitet werden.

Dies ist die Ausprägung der Objektbox als Combobox. Jeder Eintrag repräsentiert genau ein Objekt und zeigt ausgewählte Daten, die mit dem Objekt in Zusammenhang stehen.

Die angegebene Höhe wird nicht benutzt, um die Höhe des Eingabefeldes zu bestimmen. Diese wird – analog bspw. zum String-Widget – anhand der Font-Größe bestimmt. Stattdessen bestimmt die angegebene Höhe die maximale Höhe der aufgeklappten Auswahlliste.

Die ObjectCombobox wird mit folgenden Anweisungen programmiert:

Flags
Flag Beschreibung
AUTO_POSITION Die X-Positionen werden automatisch berechnet, müssen also mit SetFormat nicht explizit vorgegeben werden.
NULL_ELEMENT

Die ComboObjektbox erzeugt automatisch einen Eintrag, der sich auf kein Objekt bezieht. Ein NULL-Element ist nützlich, wenn die Objektbox mit FillWindow und DrainWindow zur Darstellung eines Pointers bzw. einer 1-1- oder 1-m-Relation benutzt wird.

ENTIRE Wenn das Flag ENTIRE gesetzt ist, wird das referenzierte Element automatisch bei FillWindow in die Objektbox geladen, ein manuelles Füllen der Objektbox ist nicht notwendig. Das ist vor allem in Kombination mit NULL_ELEMENT sinnvoll, um in der Objektbox nur das referenzierte Element aus einer großen Menge statt der ganzen Menge zu laden und die Möglichkeit zu bieten die Referenz zu entfernen. Die Objektbox bietet dann aber nur die Möglichkeit der Referenz zu entfernen oder zu behalten, ein Ändern der Referenz auf ein anderes Objekt ist dann mit der Objektbox nicht mehr möglich.
HIDDEN Die Objektbox bleibt solange unsichtbar, bis Anweisung Show sie auf dem Bildschirm erscheinen lässt.
MIN_HEIGHT(h) Höhe des Widgets fällt in keinem Falle unter den Wert h (Angabe in Minicells). Dies ist vor allem in Kombination mit Attachments von Nutzen.
MIN_WIDTH(w) Breite des Widgets fällt in keinem Falle unter den Wert w (Angabe in Minicells). Dies ist vor allem in Kombination mit Attachments von Nutzen.
NO_DRAIN Die Objektbox wird zwar von FillWindow gefüllt, aber von DrainWindow ignoriert.
TOOLTIP(mlString) Der angegebene String wird als Hinweistext (Tooltip) eingeblendet, oder, falls ein Event TOOLTIP ebenfalls definiert ist, an diesen übergeben. Das Erscheinen des Tooltips wird vom System automatisch nach eine bestimmten Zeit des Verharrens des Maus-Cursors über dem Windowobjekt ausgelöst. Der String kann mehrsprachig sein. An das Event wird der jeweils zur eingestellten Sprache aktuelle Eintrag übergeben.
CONTEXTMENU(identifikator)

Der Identifikator ist ein Bezeichner eines Items innerhalb einer Menu- oder ContextMenuList-Deklaration. Das unter diesem Item hängende Untermenu wird automatisch beim Betätigen der rechten Maustaste eingeblendet. Wird daraufhin ein Menupunkt ausgewählt, wird wie zu Item beschrieben die jeweilige Aktion gestartet, in gleicher Weise, als wäre der Menueintrag aus dem Hauptmenu heraus aufgerufen worden.
Zusätzlich kann man jedoch bei Ausführung von SELECT zu dem entsprechenden Item mittels GetCurrentWidget ermitteln, aus welchem Windowobjekt heraus der Menupunkt via ContextMenu aufgerufen wurde. Bei einem Ausruf aus dem Hauptmenu liefert GetCurrentWidget NULL zurück.

Soll ein ContextMenu nicht automatisch erscheinen, so kann es (nach Gestaltungsrichtlinie sollte dies als Reaktion auf die rechte Maustaste, also innerhalb MOUSE_CLICK_R erfolgen) mittels PopupMenu auch aus InstantView® heraus aufgerufen werden. In diesem Fall sollte auf die Angabe des Flags CONTEXTMENU verzichtet werden, da sonst das Menu zweimal (einmal automatisch, einmal gesteuert) erscheint.

ACCEPT_DROP Auf der ComboObjektbox können von einer Objektbox mit Drag-and-Drop über den Bildschirm gezogene Objekte abgelegt werden. Was mit den Objekten geschehen soll, muss in der Aktionsliste beschrieben werden (siehe Beispiel)..
LIST_INVALID (ab 4.2) Normalerweise werden in eine Objektbox nur gültige Objekte aufgenommen. Wenn dieses Flag gesetzt ist, werden jedoch auch ungültige Objekte aufgenommen und angezeigt.
HELP(anchor) Help("file#anchor") verbindet das Windowobjekt mit Online-Hilfe im HTML-Format. Wenn kein Filename angegeben wurde, gilt die im Modul festgelegte HTML-Datei.
HELP(n)

Möchte man lieber das Help-System der Plattform (OS/2 PM, MS Windows) benutzten, so ist eine ganze Zahl n anzugeben, die auf das entsprechende Hilfe-Fenster verweist. Dabei muss n < 40000 sein.

Hinweis:  Als Online-Hilfe für InstantView® Applikation wird aus Gründen der Portabilität HTML empfohlen.

Transaktionsabbruch
Bei einem Transaktionsabbruch (AbortTXN, Attention(AbortTXN), usw.) wird die Combobox geleert - aber nur dann, wenn sie innerhalb der Transaktion verändert wurde. Dadurch wird sichergestellt, dass die Combobox keine Objekte enthält, die es möglicherweise nicht mehr gibt (z.B. neue persistente Objekte, die durch den Transaktionsabbruch wieder gelöscht werden).