Das Steuerelement ListView in gb.qt4 (→ gb.gui.base) implementiert eine Liste mit auswählbaren Elementen.
Die Klasse ListView verfügt u.a. über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Current | _TreeView_Item | Gibt das aktuelle Element zurück. Im Allgemeinen ist es das Element, das den Fokus hat oder das markiert ist (Single-Selection-Modus). |
Item | _TreeView_Item | Gibt das Element zurück, auf das der interne Zeiger zeigt oder NULL, wenn der interne Zeiger nicht erreichbar ist. |
Count | Integer | Gibt die Anzahl aller Elemente in der ListView zurück. |
Editable | Boolean | Gibt an, ob die Elemente standardmäßig editierbar sind. Das heißt, ob sie vom Benutzer umbenannt werden können, wenn er auf sie klickt. |
Key | String | Gibt den Key des aktuellen Elements zurück. |
Mode | Integer | Setzt den Auswahlmodus oder gibt den Auswahlmodus zurück. Die verwendeten Konstanten sind: Single, None oder Multiple. |
Selection | String[ ] | Zurückgegeben werden die Keys aller markierten Elemente in einem String-Array (Multi-Selection-Modus). |
Sorted | Boolean | Zeigt an oder legt fest, ob die Elemente in der ListView sortiert angezeigt werden. |
Tabelle 17.4.0.1.1 : Ausgewählte Eigenschaften der Klasse ListView
Die Klasse ListView besitzt diese ausgewählten Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
Exist ( Key As String ) | Boolean | Zurückgegeben wird der Wert True, wenn das Element mit dem angegebenen Key existiert. |
Add ( Key As String, Text As String [ , Picture As Picture, After As String ] ) | _TreeView_Item | Fügt ein Element in die ListView ein. |
MoveBack() | Boolean | Wenn eine der anderen Move-Methoden den Wert True zurück gibt, so können Sie diese Methode benutzen, um den internen Zeiger an seine ursprüngliche Position zu bewegen. Es wird True zurück gegeben, wenn der interne Zeiger nicht auf einer gültigen Position war. |
MoveBelow() | Boolean | Bewegt den internen Zeiger auf ein sichtbares Element unterhalb des aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann. |
MoveTo ([ Key As String ]) | Boolean | Setzt den internen Cursor auf das Element in der ListView mit dem angegebenen Key. |
MoveBelow() | Boolean | Bewegt den internen Zeiger auf ein sichtbares Element unterhalb des aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann. |
MoveCurrent() | Boolean | Setzt den internen Cursor auf das markierte Element in der ListView. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann. |
MoveFirst() | Boolean | Setzt den internen Cursor auf das erste Element in der ListView. Es wird True zurückgegeben, wenn die Liste leer ist. |
MoveLast() | Boolean | Setzt den internen Cursor auf das letzte Element in der ListView. Es wird True zurückgegeben, wenn die Liste leer ist. |
Rename() | Boolean | Startet das Umbenennen des markierten Elements. |
Tabelle 17.4.0.2.1 : Ausgewählte Methoden der Klasse ListView
Die Add(…)-Methode fügt ein neues Element in die ListView ein:
Function Add ( Key As String, Text As String [ , Picture As Picture, After As String ] ) As _TreeView_Item
Im folgenden Beispiel aus dem Projekt ListViewE werden die einzelnen Elemente in der ListView aus dem Inhalt einer Datei generiert:
Private Sub ListViewImport(Path As String, hListView As ListView) Dim cJSONCollection As JSONCollection Dim cCollection As JSONCollection Dim sKey, sText As String Dim picPicture As Picture hListView.Clear cJSONCollection = JSON.Decode(File.Load(Path), True) For Each cCollection In cJSONCollection sKey = cCollection["KEY"] sText = cCollection["TEXT"] picPicture = Picture[cCollection["PICTURE"]] hListView.Add(sKey, sText, picPicture, Null) ' Null, weil die Reihenfolge feststeht Next End ' ListViewExport(...)
Die Klasse ListView besitzt unter anderem die folgenden Ereignisse:
Ereignis | Beschreibung |
---|---|
Click() | Das Ereignis wird ausgelöst, wenn auf ein Element in der ListView geklickt wird. |
Select() | Das Ereignis wird ausgelöst, wenn sich die Auswahl in der ListView ändert. |
Compare ( Key As String, OtherKey As String ) | Dieses Ereignis wird ausgelöst, wenn zwei Elemente in der ListView verglichen werden. Das Ergebnis des Vergleichs wird in der Compare-Eigenschaft gespeichert. |
Tabelle 17.4.0.3.1 : Ausgewählte Ereignisse der Klasse ListView
Im nächsten Abschnitt werden Ihnen wichtige Eigenschaften und Methoden der virtuellen Klasse _TreeView_Item vorgestellt, da die Eigenschaften Current und Item vom Typ _TreeView_Item sind.
Die virtuelle Klasse _TreeView_Item repräsentiert einen Eintrag in einer ListView.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Count | Integer | Gibt die Anzahl der Elemente zurück. |
Editable | Boolean | Gibt an, ob dieses Element editierbar ist. Das bedeutet, ob es vom Anwender umbenannt werden kann, wenn er darauf klickt. |
Key | String | Gibt den Key zurück. |
Picture | Picture | Gibt das Bild zurück oder setzt das Bild, das neben dem Element angezeigt wird. |
RichText | String | Gibt den RichText zurück oder setzt den RichText. |
Selected | Boolean | Gibt an, ob das Element ausgewählt ist. |
Text | String | Gibt den angezeigten Text auf dem Element zurück oder setzt den anzuzeigenden Text. |
Tabelle 17.4.0.5.1 : Ausgewählte Eigenschaften der virtuellen Klasse _ListView_Item
Seine Stärke als Steuerelement zur Anzeige von Daten zeigt die ListView erst dann so richtig, wenn Sie den Text als RichText erzeugen und zusammen mit einem Bild (Datentyp Picture) vor dem Text verwenden:
Abbildung 17.4.0.5.1: Verwendung von RichText in einer ListView
Methode | Beschreibung |
---|---|
Delete() | Löscht das (aktuelle) Element aus der ListView. |
Ensurevisible() | Sichert die (sichtbare) Anzeige des Elements in der ListView (Scroll-Effekt). |
Rename() | Startet das Umbenennen des markierten Elements. |
Tabelle 17.4.0.6.1 : Ausgewählte Methoden der virtuellen Klasse _TreeView_Item
Die Verwendung unterschiedlicher Methoden zeigt der folgende, ausführlich kommentierte Beispiel-Quelltext zum Löschen eines (markierten) Elements:
Public Sub btnDeleteElement_Click() ' Nur ein markiertes Element darf gelöscht werden If Not ListView1.Key Then Return ' Zuerst den internen Cursor auf das markierte Element setzen (Start-Position) ListView1.MoveCurrent() ' Dann den internen Cursor auf das nächste *sichtbare* - oberhalb liegenden - Element setzen ListView1.MoveAbove() ' *** ' Das markierte Element wird gelöscht ListView1.Remove(ListView1.Key) ' Der interne Cursor zeigt nach (***) auf das nach dem Löschen auszuwählende Element. ' Gibt es nach dem Löschen noch ein oberes Element, dann wird der externe Cursor darauf ' gesetzt → es wird markiert. If ListView1.Item Then ListView1.Key = ListView1.Item.Key ' Sonst wird der interne Cursor auf den ersten Eintrag gesetzt, ' wenn er existiert und dann das oberste Element markiert. Else If Not ListView1.MoveFirst() Then ListView1.Key = ListView1.Item.Key Endif End ' btnDeleteElement_Click()
Artikel