Wählen Sie ein Objekt vom Typ Listbox im Formulareditor, zeigt die Eigenschaftenliste mehrere spezifische Gruppen und Eigenschaften. Weitere Eigenschaften sind verfügbar, wenn Sie in der Listbox eine Spalte (siehe Eigenschaften für Spalten der Listbox) oder einen Spaltentitel (siehe Eigenschaften für Spaltentitel der Listbox) auswählen.
Diese Gruppe enthält die Eigenschaft Datenquelle, über die Sie die Art der Listbox festlegen können:
Wählen Sie die Option Aktuelle Auswahl, um Ausdrücke, Datenfelder oder Methoden zu verwenden, deren Werte für jeden Datensatz der aktuellen Auswahl einer Tabelle gewertet werden.
Wählen Sie die Option Temporäre Auswahl, um Ausdrücke, Datenfelder oder Methoden zu verwenden, deren Werte für jeden Datensatz der temporären Auswahl einer Tabelle gewertet werden.
Wählen Sie die Option Arrays, um Array Elemente als Zeilen der Listbox zu verwenden. Diese Option ist erforderlich, um das Ergebnis einer SQL-Anfrage in der Listbox einzufügen. Weitere Informationen dazu finden Sie im Abschnitt Ergebnis einer SQL-Anfrage in Listbox anzeigen.
Dieses Thema erscheint nur für den Listboxtyp Auswahl. Es enthält die Eigenschaft Haupttabelle für Listboxen, die auf der aktuellen Auswahl basieren und die Eigenschaft Temporäre Auswahl für Listboxen, die auf einer temporären Auswahl basieren.
Hauptabelle: Damit definieren Sie die Tabelle, deren aktuelle Auswahl Sie benutzen wollen. Diese Tabelle und die dazugehörige aktuelle Auswahl sind die Referenz für die Datenfelder, die den Spalten in der Listbox zugeordnet werden (Feldreferenzen oder Ausdrücke mit Feldern). Selbst wenn einige Spalten Felder aus anderen Tabellen enthalten, wird die Anzahl der angezeigten Zeilen durch die Haupttabelle bestimmt. Das PopUp-Menü für diese Eigenschaft zeigt alle Tabellen der Datenbank an, egal ob das Formular mit einer Tabelle (Tabellenformular) oder nicht (Projektformular) verknüpft ist. Die Eigenschaft zeigt standardmäßig die erste Tabelle der Datenbank. Weitere Informationen dazu finden Sie im Abschnitt Anzeige der Felder in Listboxen.
Temporäre Auswahl: Hier geben Sie den Namen einer gültigen temporären Auswahl ein. Sie kann vom Typ Prozess oder Interprozess sein. Der Inhalt der Listbox basiert dann auf dieser Auswahl. Die gewählte temporäre Auswahl muss vorhanden und gültig sein, wenn die Listbox angezeigt wird. Andernfalls bleibt die Listbox leer. Sie bleibt ebenfalls leer, wenn Sie den Namensbereich leer lassen. Hinweis: Temporäre Auswahlen sind geordnete Datensatzlisten. Sie dienen dazu, die Reihenfolge und den aktuellen Datensatz einer Auswahl im Speicher zu halten. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im Kapitel Temporäre Auswahl.
Diese Gruppe enthält alle Grundeigenschaften des Objekts:
Spaltenanzahl: Anzahl der Spalten in der Listbox (standardmäßig 1). Klicken Sie auf den Spaltentitel, erscheint das Kontextmenü, über das Sie die Anzahl ändern können. Sie klicken auf eine Spalte bzw. einen Spaltentitel und wählen zwischen Spalte einfügen, duplizieren oder löschen:
Anzahl statische Spalten: Das ist die Anzahl, die sich nicht während der Ausführung bewegen lässt. Der Wert gibt die Anzahl der festen Spalten, beginnend mit der ersten Spalte der Listbox an. Um das Bewegen von Spalten auszuschließen, muss dieser Wert gleich der Gesamtanzahl der Spalten sein. Beachten Sie, dass auch ausgeblendete Spalten mitgezählt werden. Ist die Option hierarchische Listbox nicht aktiviert, hat diese Eigenschaft standardmäßig den Wert 0 (Null), d.h. alle Spalten lassen sich bewegen. Ist der hierarchische Modus aktiviert (nur Listboxen vom Typ Array), hat diese Eigenschaft immer mindestens den Wert 1.
Kopfteile anzeigen: Hier können Sie Spaltentitel anzeigen oder ausblenden. Standardmäßig werden sie angezeigt.
Auswahlmenge: Diese Eigenschaft erscheint nur für Listboxen vom Typ Aktuelle Auswahl oder Temporäre Auswahl. Damit definieren Sie die Menge zum Verwalten markierter Datensätze in der Listbox. Ist die Datenquelle Array ausgewählt, wird ein Array vom Typ Boolean mit demselben Namen wie die verwendete Listbox verwendet. 4D erstellt eine Standardmenge mit Namen ListboxMenge1 Sie können diesen Namen bei Bedarf ändern, es kann eine lokale, Prozess- oder Interprozessmenge sein. Wir empfehlen die Verwendung einer lokalen Menge, z.B. $LBMenge, um den Netzwerkverkehr gering zu halten. Sie wird dann automatisch von 4D verwaltet. Wählt der Benutzer eine oder mehrere Zeilen in der Listbox, aktualisiert 4D sofort die Menge. Um eine oder mehrere Zeilen per Programmierung auszuwählen, verwenden Sie die Befehle zum Verwalten markierter Datensätze im Handbuch 4D Programmiersprache im Kapitel Mengen. Hinweise:
Der Status Markiert in Zeilen der Listbox ist vollkommen unabhängig vom Status Markiert in Datensätzen einer Tabelle.
Enthält die Eigenschaft Auswahlmenge keinen Namen, ist in der Listbox keine Auswahl möglich.
Zeilenstil Array (Listboxtyp Array) / Zeilenstil (Listboxtyp Auswahl): Hier weisen Sie jeder Zeile der Listbox einen eigenen Schriftstil zu.
Für Listboxen vom Typ Array müssen Sie den Namen eines Array vom Typ Lange Ganzzahl eingeben. Jedes Element im Array entspricht einer Zeile in der Listbox. Das Array muss dieselbe Größe haben wie die den Spalten zugeordneten Arrays. Zum Füllen des Array über eine Methode wählen Sie eine Konstante unter dem 4D Thema . Sie können auch mehrere Stilarten miteinander kombinieren. Um den Stil, der in den Eigenschaften der Listbox definiert wurde, der Zeile zuzuweisen, übergeben Sie den Wert -255 im Element des dazugehörigen Array.
Für Listboxen vom Typ Auswahl müssen Sie einen Ausdruck oder eine Variable (außer für ein Array) eingeben. Der Ausdruck bzw. die Variable wird für jede angezeigte Zeile ausgewertet. Einen Ausdruck können Sie über den Formeleditor definieren. Klicken Sie dazu auf die Schaltfläche [...]. Sie erscheint, wenn Sie den Bereich auswählen. Sie können auch die Konstanten unter dem 4D Thema verwenden. Das folgende Beispiel verwendet einen Variablennamen: Geben Sie FirmaStil im Bereich Zeilenstil ein und schreiben Sie folgende Methode:
Zeilen Schriftfarbe Array (Listboxtyp Array) / Zeilenschriftfarbe (Listboxtyp Auswahl): Hier weisen Sie jeder Zeile der Listbox eine eigene Schriftfarbe zu. Sie müssen einen RGB-Farbwert verwenden. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache unter dem Befehl OBJECT SET RGB COLORS.
Für Listboxen vom Typ Array müssen Sie den Namen eines Array vom Typ Lange Ganzzahl eingeben. Jedes Element im Array entspricht einer Zeile in der Listbox. Das Array muss dieselbe Größe haben wie die den Spalten zugeordneten Arrays. Sie können eine Konstante unter dem 4D Thema verwenden. Um die Schriftfarbe, die in den Eigenschaften der Listbox definiert wurde, einer Zeile zuzuweisen, übergeben Sie den Wert -255 im Element des dazugehörigen Array.
Für Listboxen vom Typ Auswahl müssen Sie einen Ausdruck oder eine Variable (außer für ein Array) eingeben. Der Ausdruck bzw. die Variable wird für jede angezeigte Zeile gezeigt. Einen Ausdruck können Sie über den Formeleditor definieren. Klicken Sie dazu auf die Schaltfläche [...]. Sie erscheint, wenn Sie den Bereich auswählen. Sie können auch die Konstanten unter dem 4D Thema verwenden. Das folgende Beispiel verwendet einen Variablennamen: Geben Sie FirmaFarbe im Bereich Zeilenschriftfarbe ein und schreiben Sie folgende Methode:
Zeilen Hintergrundfarbe Array (Listboxtyp Array) / Zeilenhintergrundfarbe (Listboxtyp Auswahl): Hier geben Sie eine eigene Hintergrundfarbe für jede Zeile der Listbox ein. Sie müssen einen RGB-Farbwert verwenden. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache unter dem Befehl OBJECT SET RGB COLORS.
Für Listboxen vom Typ Array müssen Sie den Namen eines Array vom Typ Lange Ganzzahl eingeben. Jedes Element im Array entspricht einer Zeile in der Listbox. Das Array muss dieselbe Größe haben wie die den Spalten zugeordneten Arrays. Sie können Konstanten unter dem 4D Thema verwenden. Um die Hintergrundfarbe, die in den Eigenschaften der Listbox definiert wurde, einer Zeile zuzuweisen, übergeben Sie den Wert -255 im Element des dazugehörigen Array.
Für Listboxen vom Typ Auswahl müssen Sie einen Ausdruck oder eine Variable (außer für ein Array) eingeben. Der Ausdruck bzw. die Variable wird für jede angezeigte Zeile gezeigt. Einen Ausdruck können Sie über den Formeleditor definieren. Klicken Sie dazu auf die Schaltfläche [...]. Sie erscheint, wenn Sie den Bereich auswählen. Sie können auch die Konstanten unter dem 4D Thema verwenden.
Zeilen ausblenden (nur in Listboxen vom Typ Array): Hier können Sie eine oder mehrere Zeilen ausblenden. Sie müssen den Namen eines Array vom Typ Boolean eingeben. Dieses Array muss die gleiche Anzahl Elemente wie die Listbox haben. Jedes Element des Array entspricht dem Status angezeigt/ausgeblendet der entsprechenden Zeile in der Listbox:
Um eine Zeile auszublenden, übergeben Sie Wahr
Um eine Zeile anzuzeigen, übergeben Sie Falsch
Ist hier kein Array angegeben oder ist das Array leer, werden alle Zeilen der Listbox angezeigt. Standardmäßig sind hinzugefügte Zeilen sichtbar. Ausblenden von Zeilen betrifft nur die Anzeige in der Listbox. Ausgeblendete Zeilen sind weiterhin in den Arrays enthalten und lassen sich per Programmierung steuern. Die Routinen der Programmiersprache, insbesondere LISTBOX Get number of rows oder LISTBOX GET CELL POSITION, berücksichtigen nicht den Status angezeigt/ausgeblendet. So gibt LISTBOX Get number of rows in einer zehnzeiligen Liste den Wert 10 zurück, auch wenn 9 Zeilen ausgeblendet sind. Für den Benutzer sind ausgeblendete Zeilen in einer Listbox nicht offensichtlich erkennbar. Er kann jedoch nur sichtbare Zeilen auswählen, z.B. über den Befehl Select All.
Auswahlmodus: Hier definieren Sie den Auswahlmodus für die Zeilen der Listbox. Es gibt drei Optionen:
Nichts: Sie können weder eine Zeile auswählen, noch Daten eingeben. Auswahl und Eingabe lassen sich nur per Programmierung verwalten. Klick oder Doppelklick in die Liste haben keine Auswirkung, selbst wenn die Option Eingebbar markiert ist. Die Ereignisse On Clicked und On Double Clicked lassen sich jedoch erzeugen. Mit dieser Option hat der Entwickler die volle Kontrolle, und zwar mit der Eigenschaft Auswahlmenge über Auswahlen, mit dem 4D Befehl EDIT ITEM über die Dateneingabe. Die Ereignisse On Selection Change und On Before Data Entry werden nicht generiert. Das Ereignis On After Edit lässt sich dagegen erzeugen, wenn der Benutzer Daten über den 4D Befehl EDIT ITEM eingibt.
Einfach: Sie können nur eine Zeile auf einmal auswählen
Mehrfach: Sie können mehrere Zeilen auf einmal auswählen. Die standardmäßigen Tastenkombinationen lauten: Umschalttaste+Klick für eine fortlaufende Auswahl; unter Windows Strg-Taste+Klick, auf Mac OS Befehlstaste+Klick für eine unterbrochene Auswahl.
Nur Listboxen vom Typ Array können hierarchisch sein. Diese Option konfiguriert die hierarchische Anzeige der Listbox. Beachten Sie, dass diese Eigenschaften automatisch geändert werden, wenn Sie die Hierarchie über das PopUp-Menü des Objekts Listbox definieren (siehe Hierarchische Listboxen erstellen und verwenden).
Hierarchische Listbox: Damit definieren Sie in der Eigenschaftenliste, dass die Listbox in hierarchischer Form angezeigt wird.
Variable 1 ... 10: Diese zusätzlichen Optionen erscheinen, wenn Hierarchische Listbox markiert ist. Immer wenn ein Wert in ein Feld eingegeben wird, wird eine neue Zeile hinzugefügt. Es lassen sich bis zu 10 Variablen definieren. Diese Variablen setzen die hierarchischen Ebenen, die in der ersten Spalte angezeigt werden sollen.
Die erste Variable entspricht immer dem Variablennamen für die erste Spalte der Listbox. Die beiden Werte werden automatisch verknüpft. Die erste Variable ist immer sichtbar und eingebbar, z.B. Land. Die zweite Variable ist auch immer sichtbar und eingebbar; sie definiert die zweite hierarchische Ebene, z.B. Bundesland. Ab dem dritten Feld hängt jede Variable von der vorangegangenen ab, z.B. Landkreis, Stadt, usw. Es sind bis zu zehn hierarchische Ebenen möglich. Entfernen Sie einen Wert, steigt die gesamte Hierarchie eine Ebene höher. Die letzte Variable kann nie hierarchisch sein, selbst wenn auf dieser Ebene mehrere gleichwertige Werte existieren. Nehmen wir z.B. eine Konfiguration, wo Arr1 die Werte A A A B B B, Arr2 die Werte 1 1 1 2 2 2 und Arr3 die Werte X X Y Y Y Z enthält. In diesem Fall können A, B, 1 und 2 in zugeklappter Form erscheinen, X und Y dagegen nicht: + A + 1 X X Y + B + 2 Y Y Z Dieses Prinzip gilt nicht, wenn nur eine Variable in der Hierarchie angegeben ist: In diesem Fall werden identische Werte gruppiert. Hinweis: Definieren Sie eine Hierarchie, die auf den ersten Spalten einer vorhandenen Liste basiert, müssen Sie diese Spalten mit Ausnahme der ersten entfernen oder ausblenden, da sie sonst in der Listbox doppelt erscheinen. Definieren Sie die Hierarchie über das PopUp-Menü des Editors (siehe Hierarchische Listboxen erstellen und verwenden), werden die nicht benötigten Spalten automatisch aus der Listbox entfernt.
Diese Gruppe enthält alle Eigenschaften für Koordinaten, Breite und Höhe der Listbox.
Die Eigenschaft Zeilenhöhe gilt für die Höhe von Zeilen und Spaltentiteln gleichermaßen. Sie wird in Pixel festgelegt. Standardmäßig richtet sie sich nach Plattform und Schriftgröße.
Diese Gruppe enthält alle Eigenschaften für die Hintergrundfarbe der Zeilen und den Randstil.
Hintergrundfarbe: Hier legen Sie die Hintergrundfarbe der Listbox fest. Diese Farbe wird für das gesamte Objekt mit Ausnahme der Kopfteile verwendet.
Alternative Hintergrundfarbe: Hier legen Sie für Zeilen der Listbox mit ungerader Nummer eine andere Hintergrundfarbe fest. Das macht Arrays leichter lesbar.
Randstil: Hier legen Sie einen Standardstil für den Rand der Listbox fest.
Diese Gruppe enthält alle Eigenschaften zum dynamischen Verhalten der Listbox.
Methode (Bearbeiten...): Über diese Schaltfläche zeigen Sie die Methode des Objekts vom Typ Listbox an. Beachten Sie, dass auch jede Spalte eine Objektmethode enthalten kann.
Dragfähig und dropfähig: Diese Option aktiviert die Drag- und Drop-Funktionen für Listboxen. Sie können dann die Zeile einer Listbox per Drag&Drop in eine andere Listbox bzw. ein anderes Objekt ziehen und umgekehrt. Das gilt jedoch nur für Zeilen; nicht für Spalten. Spalten lassen sich nur innerhalb derselben Listbox bewegen. Drag&Drop in Listboxen erfolgt über die Standard Funktionalitäten von 4D. Das sind die Formularereignisse On Drop und On Drag Over sowie die 4D Befehle DRAG AND DROP PROPERTIES und Drop position.
Verschiebbare Zeilen (nur Listboxtyp Array): Diese Option ist standardmäßig aktiv. Damit lassen sich Zeilen während der Ausführung bewegen. Die Option ist für Listboxen vom Typ Auswahl sowie im hierarchischen Modus (Option Hierarchische Listbox ist markiert) nicht verfügbar.
Sortierfähig: Diese Option ist standardmäßig aktiv. Damit können Sie durch Anklicken des Spaltentitels Daten in Spalten sortieren. Es lassen sich jedoch keine Arrays (Spalten) vom Typ Bild sortieren. In Listboxen, die auf einer Datensatzauswahl basieren, sind nur die standardmäßigen Sortierfunktionen aktiv:
Wenn die Datenquelle die aktuelle Auswahl ist
Für Spalten, denen Datenfelder vom Typ Alphanumerisch, Zahl, Datum, Zeit oder Boolean zugewiesen sind
In anderen Fällen (Listboxen mit temporären Auswahlen, Spalten mit Ausdrücken) ist die Standardsortierfunktion nicht verfügbar.
Eine Standardsortierung stimmt alle Spalten der Listbox aufeinander ab, inkl. der berechneten Spalten.