Benutzer-Werkzeuge

Webseiten-Werkzeuge


k17:k17.4:start

17.4.0 ListView

Das Steuerelement ListView in gb.qt4 (→ gb.gui.base) implementiert eine Liste mit auswählbaren Elementen.

  • Die einzelnen Elemente der Liste werden durch einen eindeutigen Schlüssel indiziert. Sie zeigen einen Text und optional ein Bild vor jedem Text.
  • Das Steuerelement verfügt über einen internen Zeiger. Verwenden Sie die unterschiedlichen Move-Methoden, um den internen Zeiger zu bewegen und die Current-Eigenschaft, um auf das aktuelle Element zuzugreifen.
  • Mit den verschiedenen Move-Methoden können Sie den internen Zeiger verschieben. Wenn Sie den internen Zeiger auf ein bestimmtes Element setzen wollen, dann müssen Sie die Methode MoveTo(Key) benutzen. Beachten Sie, dass diese Move-Methoden den Wert True zurück geben, wenn die Bewegung des internen Zeigers nicht ausgeführt werden kann.
  • Um den sichtbaren Zeiger – als Auswahl eines bestimmten Elements der ListView – zu setzen, weisen Sie der Key-Eigenschaft eines Elements den Schlüssel des zu markierenden Elements zu.

17.4.0.1 Eigenschaften ListView

Die Klasse ListView verfügt u.a. über diese Eigenschaften:

EigenschaftDatentypBeschreibung
Current _TreeView_ItemGibt das aktuelle Element zurück. Im Allgemeinen ist es das Element, das den Fokus hat oder das markiert ist (Single-Selection-Modus).
Item_TreeView_ItemGibt das Element zurück, auf das der interne Zeiger zeigt oder NULL, wenn der interne Zeiger nicht erreichbar ist.
CountIntegerGibt die Anzahl aller Elemente in der ListView zurück.
EditableBooleanGibt an, ob die Elemente standardmäßig editierbar sind. Das heißt, ob sie vom Benutzer umbenannt werden können, wenn er auf sie klickt.
KeyStringGibt den Key des aktuellen Elements zurück.
ModeIntegerSetzt den Auswahlmodus oder gibt den Auswahlmodus zurück. Die verwendeten Konstanten sind: Single, None oder Multiple.
SelectionString[ ]Zurückgegeben werden die Keys aller markierten Elemente in einem String-Array (Multi-Selection-Modus).
SortedBooleanZeigt 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

17.4.0.2 Methoden ListView

Die Klasse ListView besitzt diese ausgewählten Methoden:

MethodeRückgabetypBeschreibung
Exist ( Key As String )BooleanZurü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_ItemFügt ein Element in die ListView ein.
MoveBack()BooleanWenn 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()BooleanBewegt 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 ])BooleanSetzt den internen Cursor auf das Element in der ListView mit dem angegebenen Key.
MoveBelow()BooleanBewegt den internen Zeiger auf ein sichtbares Element unterhalb des aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveCurrent()BooleanSetzt den internen Cursor auf das markierte Element in der ListView. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveFirst()BooleanSetzt den internen Cursor auf das erste Element in der ListView. Es wird True zurückgegeben, wenn die Liste leer ist.
MoveLast()BooleanSetzt den internen Cursor auf das letzte Element in der ListView. Es wird True zurückgegeben, wenn die Liste leer ist.
Rename()BooleanStartet 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 
  • Key ist der Schlüssel für das neue Element.
  • Text ist der angezeigte Text auf dem neuen Element.
  • Picture ist das Bild, das vor dem Text angezeigt wird. Standardmäßig wird kein Bild angezeigt.
  • After ist der Schlüssel von dem Element, nach dem das neue Element eingefügt wird. Ohne diesen (optionalen) Schlüssel wird das neue Element standardmäßig als letztes Element eingefügt.

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(...)

17.4.0.3 Ereignisse ListView

Die Klasse ListView besitzt unter anderem die folgenden Ereignisse:

EreignisBeschreibung
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.

17.4.0.4 Eigenschaften und Methoden der Klasse _TreeView_Item

Die virtuelle Klasse _TreeView_Item repräsentiert einen Eintrag in einer ListView.

17.4.0.5 Eigenschaften der Klasse _TreeView_Item

EigenschaftDatentypBeschreibung
CountIntegerGibt die Anzahl der Elemente zurück.
EditableBooleanGibt an, ob dieses Element editierbar ist. Das bedeutet, ob es vom Anwender umbenannt werden kann, wenn er darauf klickt.
KeyStringGibt den Key zurück.
PicturePictureGibt das Bild zurück oder setzt das Bild, das neben dem Element angezeigt wird.
RichTextStringGibt den RichText zurück oder setzt den RichText.
SelectedBooleanGibt an, ob das Element ausgewählt ist.
TextStringGibt 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:

b1

b2

Abbildung 17.4.0.5.1: Verwendung von RichText in einer ListView

17.4.0.6 Methoden der Klasse _TreeView_Item

MethodeBeschreibung
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()

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k17/k17.4/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge