Gambas: Tabelle

Aus Wikibooks


Zurück zum Gambas-Inhaltverzeichnis.


TableView-Komponente dazuladen[Bearbeiten]

Die Tabelle muss man sich aus der QT-Werkzeugkiste holen, da sie nicht in der normalen Gambas-Werkzeugkiste zu finden ist.

Dazu lädt man die gb.qt.ext-Komponente. Dies kann man über den Menüpunkt Projekt -> Eigenschaften des Gambas-Projektfensters erreichen. In der Komponentenanzeige wählt man die Komponente gb.qt.ext zusätzlich aus.

Siehe auch: Gambas: Komponenten.

In der Werkzeugbox erscheint dann eine Schaltfläche mit der Bezeichnung QT. Diese klickt man an und hat dann eine Reihe weiterer Steuerelemente darunter die Tabellenansicht (TableView) zur Verfügung.

TableView nutzen[Bearbeiten]

Das folgende Programm nutzt das TableView-Steuerelement aus gb.qt.ext. In eine Tabelle mit 10 Spalten und 10 Zeilen werden die Zahlen des 1*1 eingefügt. Sie brauchen eine Form und das TableView-Steuerelement aus der Werkzeugkiste, um es in Gang zu bringen.

PRIVATE aro AS NEW Object[]
PUBLIC SUB _New()
  DIM ari AS Variant[]
  DIM i AS Integer
  DIM j AS Integer

  'es wird ein Array 10 X 10 erzeugt
  FOR i = 0 TO 9
    ari = NEW Variant[]
    ari.Resize(10)
    aro.Add(ari)
  NEXT

  'die Werte 1 bis 100 werden den Array-Elementen zugeordnet
  FOR i = 0 TO aro.Count - 1
    FOR j = 0 TO aro[i].Count - 1
      aro[i][j] = (i + 1) * (j + 1)
    NEXT
  NEXT

  TableView1.Rows.Count = 10
  TableView1.Columns.Count = 10
END

PUBLIC SUB TableView1_Data(Row AS Integer, Column AS Integer)
  TableView1.Data.Text = aro[Row][Column]
  IF aro[Row][Column] = 50 THEN TableView1.Data.BackColor = Color.Gray
END

Zellen bearbeiten[Bearbeiten]

Das TableView-Steuerelement ist aber nur für die Darstellung der Werte zuständig, man kann die Werte in den Zellen nicht editieren. Will man die Werte direkt in den Zellen bearbeiten, wie man es z.B. von Tabellenkalkulationen kennt, muss man dynamisch eine TextBox über die angeklickte Zelle positionieren, in der dann der Zelleninhalt bearbeitet werden kann. Aber keine Sorge, dass klingt komplizierter als es ist.

Beginnen Sie ein neues Projekt, legen Sie eine neue Form an und platzieren Sie auf dieser Form ein TableView, eine TextBox und ein Button. Danach benötigen Sie noch den folgenden Quellcode: TableView1 Form1.class

Farbige Zellen[Bearbeiten]

Mit nur geringem Aufwand lässt sich das obige Beispiel so erweitern, das man den einzelnen Zellen verschiedene Hintergrundfarben zuweisen kann. Dabei kann man auf die Zellen des TableViews nicht direkt zugreifen, sondern muss die Farbwerte in einem entsprechenden Array (im folgenden Beispiel $hColor) vorrätig halten und innerhalb der TableView1_Data() Routine dem TableView zur Verfügung stellen. Dazu ändern wir den Quellcode des vorherigen Beispiels wie folgt: TableView2 Form1.class

Navigieren mit den Cursortasten[Bearbeiten]

Was uns jetzt noch fehlt, ist die Möglichkeit, die jeweils zur Bearbeitung ausgewählte Zelle mit den Cursortasten zu wechseln. Um dies zu ermöglichen, müssen wir nur noch zwei Dinge tun. Erstens werden wir die TextBox1_KeyPress() Funktion so ändern, dass sie auf die entsprechenden Tasten reagiert. Zum Zweiten rufen wir am Anfang der TextBox1Show() Funktion die TableView1.MoveTo() Methode auf, um sicherzustellen, dass die Zelle, die wir bearbeiten wollen, auch im sichtbaren Bereich des TableViews liegt. Der entsprechende Quellcode: TableView3 Form1.class

Ferner verzichten wir jetzt darauf, die Hintergrundfarbe der TextBox auf Gelb zu setzen und verwenden stattdessen die jeweilige Hintergrundfarbe aus dem Array $hColor.

Wiki-Tabelle[Bearbeiten]

Nach all den Trockenübungen wollen wir uns jetzt einem zumindest halbwegs sinnvollen Beispiel für den Einsatz eines TableViews widmen.

Jeder ambitionierte Wikibook- oder Wikipedia-Autor wird früher oder später in die Verlegenheit geraten, bestimmte Informationen in einer Tabelle darstellen zu wollen. Um dabei etwa die folgende Tabelle zu erzeugen:

Wert1 Wert2 Wert3
Wert4 Wert5 Wert6
Wert7 Wert8 Wert9

benötigt man den folgenden Wiki-Quellcode:

{|{{prettytable}}
| Wert1 || Wert2 || Wert3
|-
| Wert4 || Wert5 || Wert6
|-
| Wert7 || Wert8 || Wert9
|}

Das wird bei größeren Tabellen sehr schnell unübersichtlich.

Wir brauchen also ein Programm, bei dem wir die Daten bequem in eine Tabelle eingeben können und das uns auf Knopfdruck den notwendigen Wiki-Quellcode liefert.

Wiki-Tabelle

Quellcode:

Erzeugen Sie ein neues Projekt mit Namen Wiki-Tabelle, beenden Sie Gambas direkt wieder und kopieren Sie den Quelltext von den vier vorstehenden Seiten in (neue) Dateien mit den entsprechenden Namen (Form1.class, ...) in das gewählte Projektverzeichnis. Anschließend starten Sie Gambas wieder und öffnen das Projekt und definieren im Projektfenster die Form1 als Startklasse.