Benutzer-Werkzeuge

Webseiten-Werkzeuge


k17:k17.5:start

17.5.0 ColumnView

Die Klasse ColumnView in gb.qt4 (→ gb.gui.base) implementiert ein Steuerelement, das eine TreeView mit Spalten anzeigt.

  • Die einzelnen Zeilen einer ColumnView werden durch einen eindeutigen Schlüssel indiziert. Sie zeigen einen Text in jeder Spalte an. Nur in der ersten Spalte kann zusätzlich ein Bild eingefügt werden.
  • Nutzen Sie die Columns-Eigenschaft, um die Anzahl der Spalten und ihr Layout zu ändern.
  • Das Steuerelement verfügt über einen internen Zeiger für den Zugriff auf seine Zeilen.
  • Verwenden Sie die unterschiedlichen Move-Methoden, um den internen Zeiger zu bewegen und die Current-Eigenschaft, um auf das aktuelle (markierte) Zeile zuzugreifen.
  • Wenn Sie den internen Zeiger auf eine bestimmte Zeile setzen wollen, dann müssen Sie die Methode MoveTo(Key) benutzen. Beachten Sie, dass alle 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 einer bestimmten Zeile der ColumnView – zu setzen, weisen Sie der Key-Eigenschaft einer Zeile den Schlüssel der zu markierenden Zeile zu.
  • Die Eigenschaft ColumnView.Current repräsentiert den vom Benutzer markierten Eintrag im Steuerelement ColumnView, während ColumnView.Item vom Typ _TreeView_Item ein interner, unsichtbarer und von der Eigenschaft ColumnView.Current unabhängiger Zeiger ist.
  • Die Eigenschaft ColumnView.Current verwendet man zur Auswertung von Benutzereingaben in einer ColumnView (Scrollen in der ColumnView oder Maus-Klick auf ein Zeile) und die Eigenschaft ColumnView.Item für alle Algorithmen, welche eine ColumnView lesen oder beschreiben.
  • Diese Klasse beerbt _TreeView, kann erzeugt werden und verhält sich wie ein Nur-Lesen-Array.

17.5.0.1 Eigenschaften ColumnView

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

EigenschaftDatentypBeschreibung
AutoResize BooleanGibt den Wert zurück oder legt fest, ob die Weite der letzten Spalte automatisch dem Inhalt angepasst oder erweitert wird, so dass der verbleibende sichtbare Bereich verwendet wird.
Columns _ColumnView_ColumnsGibt eine virtuelle Sammlung aller Spalten in der Spaltenansicht zurück.
CountIntegerGibt die Anzahl aller Zeilen zurück.
Current_TreeView_ItemGibt die aktuelle Zeile zurück – also die Zeile, die den Fokus hat oder die im Single-Mode ausgewählt/markiert ist.
HeaderBooleanGibt an, ob eine Kopfzeile (Header) mit den Spaltenüberschriften sichtbar ist oder nicht. Ist der boolsche Wert True, dann wird die erste Zeile als Header interpretiert und der Index für alle weiteren Zeilen beginnt mit 1.
Item_TreeView_ItemGibt die Zeile zurück, auf die der interne Zeiger zeigt. Es wird NULL zurück gegeben, wenn der interne Zeiger nicht verfügbar ist.
KeyStringGibt den Schlüssel einer Zeile zurück.
ResizableBooleanZeigt an, ob die Spalten in der Größe (mit der Maus) veränderbar sind oder nicht.
SortedBooelanGibt an, ob die Zeile sortiert sind oder nicht.

Tabelle 17.5.0.1.1 : Ausgewählte Eigenschaften der Klasse ColumnView

Klasse _ColumnView_Columns:

  • Diese Klasse ist eine Sammlung aller Spalten in einer ColumnView.
  • Diese Klasse ist virtuell.
  • Diese Klasse kann nicht erzeugt werden.
  • Diese Klasse verhält sich wie ein Nur-Lese-Array.

Die Klasse _ColumnView_Columns verfügt nur über diese vier Eigenschaften:

Ascending As Boolean
Gibt an, ob die Sortierung auf aufsteigend oder absteigend eingestellt ist.

Count As Integer
Gibt die Anzahl der Spalten zurück oder legt sie fest.

Max As Integer
Gib den größten Spaltenindex zurück.

Sort As Integer
Gibt den Spalten-Index zurück, der zum Sortieren der ColumnView-Zeile verwendet wird oder legt diese Spalte über den Index fest.
Der Wert -1 gibt an, dass die Zeile nicht sortiert sind.

Im folgenden Beispiel wird eine Spalte – entsprechend ihrem Index – zurück gegeben, deren 4 Eigenschaften Sie anschließend zum Beispiel abfragen können:

Dim hColumnView As ColumnView
Dim hGridViewColumn As _ColumnView_Columns
 
hGridViewColumn = hColumnView.Columns[ Index As Integer ]
 
Print hGridViewColumn.Count	' hColumnView.Columns[Index As Integer].Count
Print hGridViewColumn.Max	' hColumnView.Columns[Index As Integer].Max
Print hGridViewColumn.Sort	' hColumnView.Columns[Index As Integer].Sort
Print hGridViewColumn.Ascending	' hColumnView.Columns[Index As Integer].Ascending

17.5.0.2 Methoden ColumnView

Die Klasse ColumnView besitzt diese ausgewählten Methoden:

MethodeRückgabetypBeschreibung
Exist ( Key As String )BooleanZurückgegeben wird der Wert True, wenn die Zeile mit dem angegebenen Key existiert.
Clear()-Löscht alle Zeilen. Eine existierende Kopfzeile bleibt vollständig erhalten!
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 eine Zeile unterhalb der aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveTo ([ Key As String ])BooleanSetzt den internen Zeiger auf die Zeile mit dem angegebenen Key in einer ColumnView.
MoveBelow()BooleanBewegt den internen Zeiger auf eine Zeile unterhalb der aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveCurrent()BooleanSetzt den internen Zeiger auf eine markierte Zeile in der ColumnView. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveFirst()BooleanSetzt den internen Zeiger in der ColumnView auf die erste Zeile. Es wird True zurückgegeben, wenn die Liste leer ist.
MoveLast()BooleanSetzt den internen Zeiger in der ColumnView auf die letzte Zeile. Es wird True zurückgegeben, wenn die Liste leer ist.
MoveNext()BooleanSetzt den internen Zeiger in der ColumnView auf die nächste Zeile. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
Remove(Key As String)-Entfernt die Zeile mit dem Schlüssel 'Key' aus dem Steuerelement ColumnView.

Tabelle 17.5.0.2.1 : Ausgewählte Methoden der Klasse ColumnView

Die Add(…)-Methode fügt eine neue Zeile in die ColumnView ein:

Add ( Key As String, Text As String [ , Picture As Picture, Parent As String, After As String ] ) As _TreeView_Item
  • Key ist der Schlüssel vom Typ String für die neue Zeile.
  • Text (optional) ist der angezeigte Text auf der neuen Zeile in der 1. Spalte.
  • Picture (optional) ist das Bild, das nur vor dem Text der 1. Spalte angezeigt wird. Standardmäßig wird kein Bild angezeigt.
  • Parent (optional) ist der Schlüssel der übergeordneten Zeile, in den die Zeile eingefügt wird. Standardmäßig ist die neue Zeile ein Root-Zeile.
  • After (optional) ist der Schlüssel von der Zeile, nach der die neue Zeile eingefügt wird. Ohne diesen (optionalen) Schlüssel wird die neue Zeile standardmäßig als letzte Zeile eingefügt.
  • Beachten Sie: Der Rückgabewert der Add()-Methode ist ein _TreeView_Item-Objekt.

Um die Eigenschaften, Methoden und Ereignisse des Steuerelements ColumnView zu verstehen, müssen Sie die (virtuelle) Klasse _TreeView verstehen, denn die ColumnView ist im Grunde eine _TreeView, der Quelltext hinzugefügt wurde, um Spalten zu verwalten, die bereits in _TreeView verfügbar sind. Um die Verwirrung zu steigern sei angemerkt, dass ein _TreeView seinerseits intern ein GridView ist – ein Gitter aus Zellen, in die Sie Text und Bilder einfügen können. Sie können aber von einem _TreeView nicht auf diese Zellen frei zugreifen. Der Grund liegt darin, dass ein einzelnes _TreeView-Zeile eine ganze *Zeile* in der GridView ist.

Beispiel: Durch den Aufruf der Add-Methode:

ColumnView.Add("1", "Text erste Spalte", pibIcon1)

erzeugen Sie eine neue Zeile – identifiziert durch den Schlüssel „1“ – der in der einzigen (ersten) Spalte der Text „Text erste Spalte“ und ein vorangestelltes Icon hinzugefügt wird. Da der Rückgabewert der Add-Methode ein _TreeView_Item-Objekt ist, können Sie die Texte von weiteren ColumnView Spalten – jedoch ohne ein Bild vom Typ Picture – über dieses Objekt festlegen, wenn das erforderlich wird:

ColumnView.Add("1", "Text erste Spalte")[1] = "Text zweite Spalte der 1. Zeile"
ColumnView.Add("1", "Text erste Spalte")[2] = "Text dritte Spalte der 1. Zeile"

Eine Alternative zum Erzeugen einer Zeile einer ColumnView mit mehreren Spalten besteht zum Beispiel darin, den Rückgabewert der Add-Methode nicht direkt zu nutzen, sondern in einer Variablen vom Datentyp _TreeView_Item zu speichern und mit dieser Variablen weiter zu arbeiten:

Dim hItem As _TreeView_Item
 
hItem = ColumnView.Add("1", "Text erste Spalte", pibIcon1)
hItem[1] = "Text zweite Spalte der 1. Zeile"
hItem[2] = "Text dritte Spalte der 1. Zeile"

Ein anderen Ansatz mit einer Doppel-Indizierung bietet Alternative 2:

ColumnView.Add("1", "Text erste Spalte", pibIcon1)
ColumnView[1][1] = "Text zweite Spalte der 1. Zeile"
ColumnView[1][2] = "Text dritte Spalte der 1. Zeile"

Die besondere Behandlung der ersten Spalte in einem Zeile (Zeile) einer ColumnView gegenüber den weiteren Spalten ist gewöhnungsbedürftig, zumal man nur der ersten Spalte ein Bild zuweisen kann.

17.5.0.3 Ereignisse ColumnView

Die Klasse ColumnView besitzt unter anderem die folgenden Ereignisse:

EreignisBeschreibung
_Click()Das Ereignis wird ausgelöst, wenn auf ein Zeile in der ColumnView geklickt wird.
_Activate()Dieses Ereignis wird ausgelöst, wenn auf ein Zeile in der ColumnView doppelt geklickt wird.
_Select()Das Ereignis wird ausgelöst, wenn sich die Markierung der Zeilen in einer ColumnView geändert hat.

Tabelle 17.5.0.3.1 : Ausgewählte Ereignisse der Klasse ColumnView

17.5.0.4 Exkurs GridView, TableView und ColumnsView

Die folgende Tabelle enthält einige Angaben zu ausgewählten Eigenschaften der drei Steuerelemente GridView, TableView und ColumnsView, die Ihnen die Auswahl des Gitters für Ihre Projekte erleichtern sollen:

Die Klasse ColumnView besitzt unter anderem die folgenden Ereignisse:

EreignisGridViewTableViewColumnView
Titelzeile?xxx
Zellen editierbar?-xx
Multi-Selektion möglich?xxx
Icons in Zellen anzeigbar?xxNur 1. Spalte
Text in Zellen individuell formatierbar?xx-
Zugriff auf Daten mit einem Key?--x
Anzeige Gitter?xx-
Gitter abschaltbar?xx-

Tabelle 17.5.0.4.1 : Ausgewählte Eigenschaften der Steuerelemente GridView, TableView und ColumnsView

Download

Artikel

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.5/start.txt · Zuletzt geändert: 22.01.2018 (Externe Bearbeitung)

Seiten-Werkzeuge