Gambas: Steuerelemente
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)
Fangen Sie mit diesen zu arbeiten an. Danach können Sie recht einfach auch die anderen nutzen.
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.
- 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