Zum Inhalt springen

Gambas: Steuerelemente

Aus Wikibooks


Zurück zum Gambas-Inhaltsverzeichnis.


Die wichtigsten Steuerelemente (Werkzeugsammlung / Toolbox)

[Bearbeiten]

Die wichtigsten Steuerelemente sind die

  • Form oder auch Formular genannt
  • Der Befehlsbutton, (Commandbutton, Befehlsknopf, OK-Knopf in der Toolbox)
  • Die Textbox (abc-Feld in der Toolbox)
  • Die Textarea (gambas almost m..Feld in der Toolbox)
  • Die DrawingArea (Feld mit Grafiksymbolen in der Toolbox)
  • Der Zeitgeber (Timer, Feld mit Uhr in der Toolbox)

Timer Icon in Gambas

Fangen Sie mit diesen zu arbeiten an. Danach können Sie recht einfach auch die anderen nutzen.

Die Werkzeugsammlung (Toolbox)

Eigenschaften

[Bearbeiten]

Jedes Steuerelement aus der Werkzeugkiste hat verschiedene Eigenschaften (Größe, Farbe, Umrahmung, Name, Beschriftung etc). Eigenschaften (= Properties) können zur Entwurfszeit, d.h. vor dem Programmstart festgelegt werden.

  • Auf dem Formularentwurf wird das gewünschte Steuerelement markiert.
  • Mit F6 wird das Eigenschaftenfenster aufgerufen.
Das Eigenschaftenfenster
  • Dort sind dann alle verfügbaren Eigenschaften aufgelistet.
  • Man wählt die gewünschte Eigenschaft.

Probieren Sie dies z. B. mit der Umrahmung der Form, dem Name der Form oder der Größe der Form aus.

Die wichtigsten Eigenschaften von Steuerelementen werden im Folgenden beschrieben.

Name-Eigenschaft

[Bearbeiten]

Diese Eigenschaft gibt es bei allen Objekten. Sie bestimmt den Namen, unter dem das Objekt im Gambas-Code angesprochen wird. Diese Eigenschaft kann nur im Entwurfsmodus, nicht im Programm selber geändert werden. Die Voreinstellung für diese Eigenschaft ist zum Beispiel beim ersten Formular Form1. Wenn man sich irgendwo im Code auf dieses Formular beziehen will, z.B. wenn man eine seiner Eigenschaften ändern will, muss man diesen Namen benutzen.

Text-Eigenschaft

[Bearbeiten]

Diese Eigenschaft gibt es bei Formularen, Befehlsschaltflächen, Bezeichnungsfeldern und vielen anderen Steuerelementen. Bei Formularen gibt sie den Text an, der in der Titelleiste des Formulars angezeigt wird. Diese Eigenschaft kann sowohl im Entwurfsmodus als auch im Programm selber (zur Laufzeit) geändert werden. Beispiel:

PUBLIC SUB Form_Open()
  Form.Text = "Neuer Titel"
END

Unter Visual Basic hieß diese Eigenschaft meistens Caption.

Visible Sichtbar oder versteckt

[Bearbeiten]

Diese Eigenschaft gibt es bei Formularen und allen Steuerelementen außer dem Timer = Zeitgeber, denn der ist immer zur Laufzeit unsichtbar. Mit dieser Eigenschaft wird festgelegt, ob ein Objekt sichtbar oder ausgeblendet ist. Sie kann sowohl im Entwurfsmodus als auch zur Laufzeit geändert werden. Diese Eigenschaft kann nur die Werte TRUE (engl. true: wahr, das Objekt ist also sichtbar) oder FALSE (engl. false: falsch, das Objekt ist also nicht sichtbar) annehmen.

Beispiel: Sie haben eine Form mit 2 Befehlsschaltflächen. Wenn Sie auf den einen Button drücken, soll der andere verschwinden.

PUBLIC SUB Button1_Click()
  Button2.Visible = FALSE
END

Die Befehlsschaltfläche mit dem Namen Button2 wird vom Bildschirm gelöscht, also unsichtbar gemacht.

Enabled Aktiviert oder deaktiviert

[Bearbeiten]

Diese Eigenschaft gibt es für Formulare und alle Steuerelemente. Sie bestimmt, ob die Form oder das Steuerelement auf vom Benutzer erzeugte Ereignisse reagieren kann. Mit dieser Eigenschaft können Formulare und Steuerelemente also zur Laufzeit entweder verfügbar gemacht oder gesperrt werden. Wenn Steuerelemente gesperrt sind, werden sie grau statt schwarz dargestellt und sind nicht mehr anwählbar. Wie die Visible-Eigenschaft kann auch Enable nur die Werte TRUE (das Objekt kann auf Ereignisse reagieren) oder FALSE (das Objekt kann nicht auf Ereignisse reagieren) annehmen.

Man kann also auf diese Weise, ähnlich wie mit Visible, Steuerelemente sperren, die gerade nicht verwendet werden sollen. Man kann damit auch zum Beispiel ein Textfeld sperren, das nur zur Textanzeige gebraucht wird.

Wenn man bei einem Zeitgeber Enabled auf FALSE setzt, dann wird er angehalten und löst keine Ereignisse mehr aus, bis man ihn wieder weiterlaufen lässt.

Beispiel: Der Befehlsknopf Button2 wird stummgeschaltet.

PUBLIC SUB Button1_Click()
  Button2.Enabled = FALSE
END

BackColor Hintergrundfarbe

[Bearbeiten]

BackColor legt die Hintergrundfarbe für ein Objekt fest und kann sowohl im Entwurfsmodus als auch zur Laufzeit geändert werden. Beispiel:

PUBLIC SUB Form_Open()
  Form1.BackColor = &00FF00
END

ergibt einen gelben Hintergrund im Formular Form1.

Wenn man die BackColor-Eigenschaft im Eigenschaftenfenster ändert, kann man eine von vielen vorgegebenen Farben aussuchen. Wenn die nicht ausreichen, kann man im Farbpalettenfenster eigene Farben „mischen“, und die werden dann auch angezeigt. Siehe auch den Abschnitt über Grafikbefehle.

Man kann die Backcolor auch über einen Standarddialog in der Laufzeit wählen.

ForeColor Vordergrundfarbe

[Bearbeiten]

In Formularen und manchen Steuerelementen kann man mit dieser Eigenschaft die Farbe einstellen, mit der Buchstaben und Zeichen dargestellt werden. Wenn man diese Eigenschaft zur Laufzeit ändert, erscheinen nur diejenigen Buchstaben, die danach geschrieben werden, in der neuen Farbe.

X, Y entspricht den Koordinaten der Position

[Bearbeiten]

Diese Eigenschaften gibt es bei Formularen und bei fast allen Steuerelementen. Sie bestimmen die Koordinaten der linken oberen Ecke des Objekts, und zwar bei Formularen relativ zum Bildschirm, und bei den anderen Steuerelementen relativ zur linken oberen Ecke des Formulars, in dem sie stehen.

Die beiden Eigenschaften können einerseits im Entwurfsmodus geändert werden: entweder dadurch, dass man das Objekt einfach mit der Maus woanders hin zieht, oder indem man sie direkt im Eigenschaftenfenster verändert. Andererseits kann man sie zur Laufzeit ändern und damit das Objekt verschieben (- außer natürlich beim Zeitgeber).

Width, Height entspricht Breite und Höhe

[Bearbeiten]

Diese Eigenschaften bestimmen die Breite und die Höhe eines Objekts. Auch sie können sowohl im Entwurfsmodus als auch zur Laufzeit geändert werden. Die Größe des Objekts ändert sich dann sofort.

Bei einem Formular gehören zur Höhe und Breite auch die Fensterränder oben, unten und an den Seiten dazu. Bei Steuerelementen wird raffinierterweise vom Mittelpunkt des Steuerelementrahmens aus gemessen, damit Steuerelemente mit verschiedenen Rahmenbreiten hübsch ausgerichtet werden können.

Änderung zur Laufzeit

[Bearbeiten]

Eigenschaften können auch zur Laufzeit verändert werden. Die Eigenschaften werden dann erst nach dem Programmstart im Programmablauf geändert.

Die allgemeine Befehlsform lautet dazu:

Name_Des_Steuerelementes.Eigenschaftsname = Eigenschaftswert

Beispiel:

Sie haben eine DrawingArea auf Ihrer Form platziert. Jetzt wollen Sie während der Laufzeit die Farbe ändern. Platzieren Sie noch einen Befehlsbutton dazu, um die Eigenschaft während der Laufzeit zu ändern:

PUBLIC SUB Button1_Click()
  DrawingArea1.BackColor = &H00FF00&
END

Die DrawingArea wird Grün.

Als Übung können Sie zusätzlich die Größe der DrawingArea ändern. Wie geht das?

DrawingArea1.Width = 200
DrawingArea1.Height = 200

Das Programm schaut dann so aus:

PUBLIC SUB Button1_Click()
  DrawingArea1.BackColor = &H00FF00&
  DrawingArea1.Width = 200
  DrawingArea1.Height = 200
END

Die englischen Steuerelement_Namen werden automatisch von Gambas zugeteilt und mit einer laufenden Nummer unterscheidbar gemacht (Button1, Button2 etc). Diese automatisch vergebenen Namen können mit der Name-Eigenschaft im Eigenschaftsfenster verändert werden.

Methoden

[Bearbeiten]

Methoden werden ähnlich wie Eigenschaften verwendet. Sie werden vom Programm aufgerufen. Methoden sind kleine Programme, die Aktivitäten des betreffenden Steuerelements abarbeiten.

Nehmen Sie die Zwischenablage als Beispiel. Sie hat 3 verfügbare Methoden: Copy, Paste und Clear

Wenn im Codefenster programmiert wird, erscheint hinter dem Namen einer Komponente nach Schreiben des Punktes eine Liste der verfügbaren Eigenschaften und Methoden.

Eine Auswahl per Doppelklick erleichtert einem hier die Arbeit.

Ereignisse

[Bearbeiten]

Ereignisse sind z. B. Mausklicks, Mausbewegungen oder ein Tastendruck.

Das Gambasprogramm kann auf solche Ereignisse reagieren, wenn man es wünscht. Man muss nur eine Methode festlegen, die dem Programm sagt, was es tun soll.

Beispiele von Ereignissen:

Der Benutzer klickt auf einen Button oder ein Menü Click-Ereignis
Der Benutzer ändert einen Text in einem Textfeld Change-Ereignis
Ein Programm wird beendet, weil irgendwo ein Ende-Befehl erreicht wird (Benutzer oder Programmablauf), das Fenster wird aus dem Speicher entladen Unload-Ereignis
Ein Timer erreicht einen vorher bestimmten Wert Timer-Ereignis
Ein Fenster wird in der Größe verändert Resize-Ereignis

Wenn man mit der rechten Maustaste eine Komponente im Form Editor auswählt und dann auf Ereignis (= Event) klickt, werden alle Ereignisse angezeigt, die für diese Komponente verfügbar sind. Wählen Sie die, die Sie brauchen.

Ereignisse, auf die ein Steuerelement reagieren soll, werden zur Entwurfszeit festgelegt.

Liste der Ereignisse:

  • Click = Click mit der Maus (Ereignis wird nicht beim Drücken der Maustaste, sondern erst beim Wiederloslassen ausgelöst!)
  • DblClick = Doppelclick
  • Drag = Ziehen mit der Maus
  • DragMove
  • Draw
  • Drop = Fallen lassen, nach dem Ziehen
  • Enter = Mit der Maus in eine Fläche hinein fahren
  • GotFocus = Die Markierung (bzw den Focus) bekommen
  • KeyPress = Taste gedrückt
  • KeyRelease
  • Leave = Verlassen einer Fläche
  • LostFocus
  • Menu
  • MouseDown = Drücken einer beliebigen Maustaste
  • MouseMove
  • MouseUP
  • MouseWheel
  • Open

Das Click-Ereignis funktioniert auch im Entwurfsmodus. Mit ihm kann man das Steuerelement markieren. Durch einen Doppelklick öffnet sich das zugehörige Codefenster. Automatisch wird der Rahmen für ein Unterprogramm mit SUB und END erzeugt und dabei das häufigste Ereignis eines Steuerelementes bereits zugewiesen.

Element Standardereignis
Form Open
Button Click
TextBox KeyPress
ScrollView MouseDown
DrawingArea Draw
Timer Timer
Label MouseDown
PictureBox MouseDown
ProgressBar MouseDown
CheckBox Click

In diesen bereitgestellten Rahmen gibt man wie üblich seinen Programmcode ein.

Befehlsknopf (Commandbutton, Button)

[Bearbeiten]

Siehe Gambas: Button

Textarea

[Bearbeiten]

Siehe Gambas: Textarea

Progressbar = Fortschrittsbalken

[Bearbeiten]

Wie kann man den Fortschrittsbalken programmieren? Dies sollen die folgenden Beispiele zeigen:

Allein

[Bearbeiten]

Sie brauchen eine ProgressBar und drei Befehlsbuttons um das Programm in Gang zu bekommen. Holen Sie sich diese Elemente mit F6 und einem Doppelklick aus der Werkzeugkiste auf Ihre Form.

Der Quellcode:

STATIC PUBLIC SUB Main()
  hForm AS Fmain
  hForm = NEW Fmain
  hForm.show
END

PUBLIC SUB _new()
  ProgressBar1.value = 0.01
  'Der Wert für value muss zwischen 0 und 1 liegen 
END

PUBLIC SUB Button1_Click()
  ProgressBar1.value = ProgressBar1.value - 0.01
END

PUBLIC SUB Button2_Click()
  ProgressBar1.Reset
END

PUBLIC SUB Button3_Click()
   ProgressBar1.value = ProgressBar1.value + 0.01
END

Zusammen mit dem Timer

[Bearbeiten]

Das folgende Beispiel nutzt den Progressbar zusammen mit dem Timer. Je nach Delay des Timers kann man die Geschwindigkeit variieren und damit z. B. einen Ladevorgang anzeigen.

Sie brauchen einen Progressbar und einen Timer, um das Programm in Gang zu bringen:

Der Code schaut so aus:

PUBLIC SUB Form_Open()
  'Timer einstellen 
  timer1.Delay = 100 
  timer1.enabled = TRUE 
  'Progressbar einstellen
  ProgressBar1.Value = 0.01 
END 

PUBLIC SUB Timer1_Timer() 
  IF ProgressBar1.value < 0.99 THEN 
     ProgressBar1.Value = ProgressBar1.Value + 0.01 
  END IF
END

Der Timer (Zeitgeber, Zeituhr)

[Bearbeiten]

Siehe Gambas: Timer

Die Spaltenansicht (ColumnView)

[Bearbeiten]

In der Werkzeugbox findet sich ein Steuerelement mit dem Namen ColumnView. Wie man es nutzen kann zeigt folgendes Programm. Man braucht eine Form mit einem ColumnView Steuerelement auf der Form, um es in Gang zu bringen.

PUBLIC SUB Form_Open()
  Create()
END

PUBLIC SUB Create()
  it AS Integer
  it2 AS Integer
  nLines AS Integer
  ColumnView1.Clear
  ColumnView1.Width = 776
  ColumnView1.Height = 464

  '4 Spalten (Columns) erzeugen
  ColumnView1.Columns.Count = 4

  'Die Breite (width) der Spalten einstellen
  FOR it = 0 TO 3
    ColumnView1.Columns[it].Width = ColumnView1.Width / ColumnView1.Columns.Count
    ColumnView1.Columns[it].Text=" Title " & it
  NEXT

  '5 Zeilen (rows) erzeugen
  nLines = 5
  FOR it = 0 TO 4
    ColumnView1.Add(it, it)
    FOR it2 = 0 TO ColumnView1.Columns.Count - 1
      ColumnView1[it][it2] = "Col: " & it2 & " Row: " & it
    NEXT
  NEXT
END

Der Schieberegler

[Bearbeiten]

Siehe Gambas: Scrollbar

Die Form

[Bearbeiten]

Siehe Gambas: Form

Das Gitter (Gridview)

[Bearbeiten]

Siehe Gambas: Gitter

Tableview (Tabellenansicht)

[Bearbeiten]

Siehe Gambas: Tabelle

Listview (Listenansicht)

[Bearbeiten]

Siehe Gambas: Liste