Einige visuelle Objekte
Es folgt nun eine genauere Betrachtung der
wichtigsten Steuerelemente.
Es werden dabei nicht alle verfügbaren
Eigenschaften, Methoden und Ereignisse aufgeführt,
sondern nur die wichtigsten
beschrieben.
Eine umfassende Referenz ist in den Hilfedateien zu Visual Basic zu
finden.
Allgemeine Eigenschaften
Viele
Steuerelemente besitzen gemeinsame
Eigenschaften.
Die wichtigsten sind:
| Alignment |
Ausrichtung eines Textes |
| BackColor |
Hintergrundfarbe |
| ForeColor |
Vordergrundfarbe |
| Enabled |
Aktiv oder inaktiv |
| Visible |
Element sichtbar |
| Height |
Höhe |
| Width |
Breite des Steuerelements |
| Left |
Abstand vom linken Rand |
| Top |
Abstand vom oberen Rand |
| Index |
Index bei einem Array von Steuerelementen |
| Name |
Name des Steuerelements (nicht veränderbar zur Laufzeit) |
| Parent |
Übergeordnetes Steuerelement oder Fenster |
| TabIndex |
Index bei Tabulator-Reihenfolge |
| TabStop |
Soll Element mit Tabulator angesprungen werden können? |
Darüberhinaus werden in vielen Elementen Schriftarten festgelegt.
Diese
werden durch folgende Eigenschaften definiert:
| Font |
Schriftart |
| FontBold |
Schrift fett |
| FontItalic |
Schrift kursiv |
| FontName |
Schriftartname |
| FontSize |
Schriftgrad (Schriftgröße) |
| FontUnderline |
Schrift unterstrichen |
Allgemeine MethodenViele Steuerelemente haben ebenfalls gleiche
Methoden. Darunter sind:
| Move |
Bewegen des Steuerelements |
| Refresh |
Neuzeichnen |
| SetFocus |
Den Focus auf das Steuerelement setzen |
Ein Element hat den Focus falls es gerade aktiv ist und momentan Empfänger
von Tasteneingaben ist. Meist ist dieses Element optisch beispielsweise durch
einen gestrichelten Rahmen hervorgehoben.
SetFocus ist nur bei Elementen
verfügbar, die auch angesprungen werden können.
Allgemeine EreignisseEs gibt eine Reihe von Ereignissen, die von
vielen visuellen Elementen empfangen werden können. Im Allgemeinen empfängt nur
ein Steuerelement ein Ereignis. Und zwar ist es dasjenige, das gerade den Focus
hat oder über das sich der Mauszeiger gerade befindet.
| Click
|
Einfacher Mausklick auf Steuerelement
|
| DblClick
|
Doppelter Mausklick auf Steuerelement
|
| GotFocus
|
Erhalt des Focus
|
| KeyDown
|
Taste wird niedergedrückt
|
| KeyPress
|
Taste wird gedrückt
|
| KeyUp
|
Gedrückte Taste wird losgelassen
|
| LostFocus
|
Verlust des Focus
|
| MouseDown
|
Maustaste wird gedrückt
|
| MouseMove
|
Maus wird über Steuerelement bewegt
|
| MouseUp
|
Gedrückte Maustaste wird losgelassen
|
Die grundlegenden Steuerelemente (Controls, Objekte)
Label
Ein Label Objekt ist für die Darstellung statischer, d.h.
vom Benutzer nicht veränderbarer Texte zuständig.
Die Eigenschaft CAPTION vom Typ String beinhaltet den dargestellten Text.
Diese
Eigenschaft kann zur Laufzeit sowohl gelesen als auch geschrieben werden.
Wichtige Eigenschaften:
Ein Label Feld hat unter anderem die
folgenden Eigenschaften:
|
Alignment |
Ausrichtung |
|
AutoSize |
Automatisch der Textgröße anpassen? |
|
BackColor |
Hintergrundfarbe |
|
BackStyle |
Hintergrund transparent(0) oder nicht (1) |
|
BorderStyle |
Rahmenart |
|
Caption |
Anzuzeigender Text |
|
WordWrap |
Wortumbruch? |
TextBox
Eine Textbox stellt einen Text dar, der vom Anwender auch
zur Laufzeit geändert werden kann. Die dazugehörige Eigenschaft heißt TEXT.
Wichtige Eigenschaften:
| Alignment |
Ausrichtung |
| BorderStyle |
Rahmenart |
| Locked |
Ist die Eingabe durch den Benutzer gesperrt? |
| MaxLength |
Maximale Länge einer Texteingabe |
| MultiLine |
Mehrzeilig |
| ScrollBars |
Sollen Scrollbalken angezeigt werden |
| SelLength |
Eigenschaften der aktuellen Textselektion |
| SelStart |
SelText |
| Text |
Anzuzeigender Text |
Die Eigenschaften SELLENGTH, SELSTART und
SELTEXT sind zur Verwaltung des aktuell markierten Textes zuständig.
SELSTART gibt dabei an, an welcher Position sich der Cursor befindet,
bzw. an welcher Position
das momentan selektierte Textstück beginnt. SELLENGTH ist die Länge des selektierten Textes,
SELTEXT
enthält dieses Textstück.
Wichtige Ereignisse:
Change Text wurde
verändert
CommandButtonCommandButtons sind Befehlsschaltflächen, die auf
Mausklicks reagieren und Aktionen auslösen. Diese Aktionen werden im Ereignis
Click hinterlegt.
Wichtige Eigenschaften:
Caption
Anzuzeigender Text
Style
Art des
Buttons
ToolTipText Anzuzeigender ToolTip
CheckBox
Eine Checkbox ist ein Feld, das vom Anwender ausgewählt
oder nicht ausgewählt sein kann. Mit einer Checkbox wird dem Benutzer ein
Ja/Nein Element zur Verfügung gestellt. Ist es markiert, so wird es angekreuzt
dargestellt. Zur Laufzeit enthält die Eigenschaft VALUE den momentanen
Status (markiert=1, unmarkiert=0) dieses Elements.
Eine CheckBox ist einem
OptionButton sehr ähnlich. Der Unterschied ist der, dass beliebig viele
Checkboxen in einem Fenster oder in einer Gruppe markiert sein können, aber nur
ein OptionButton pro Gruppe.
Wichtige Eigenschaften:
Caption Anzuzeigender Text
Value Markiert?
OptionButtonÄhnlich wie eine Checkbox kann auch ein OptionButton
markiert oder nicht markiert sein. Allerdings kann in einer Gruppe von
OptionButtons nur einer markiert sein. Die Information VALUE beinhaltet
wiederum die Information, ob das Element markiert ist (1) oder nicht (0).
Um
OptionButtons zu gruppieren, werden Sie in einem bestehenden Container wie
beispielsweise ein Frame oder eine PictueBox angelegt.
Wichtige
Eigenschaften:
Caption Anzuzeigender Text
Value Markiert?
ListBoxEine ListBox stellt eine Liste von Elementen dar. Der
Benutzer kann ein oder mehrere Elemente auswählen.
Gibt es mehr Elemente als
Zeilen so wird automatisch ein Scrollbalken angezeit.
Die Anzahl der Elemente
in einer Liste ist in der Eigenschaft LISTCOUNT gespeichert. Das
markierte Element steht in der Eigenschaft LISTINDEX. Dabei hat das
erste Element den Index 0, das letzte LISTCOUNT-1. Ist kein Element
ausgewählt, so ist LISTINDEX = -1.
Das Hinzufügen von Elementen
geschieht mit der Methode ADDITEM, das Entfernen mit der Methode REMOVEITEM. Zum Leeren der ganzen Liste wird
CLEAR
verwendet.
Wichtige Eigenschaften:
| Columns |
Anzahl der Spalten |
| List |
Liste der Elemente als Strings (zur Laufzeit nur lesbar) |
| ListCount |
Anzahl der Elemente |
| ListIndex |
Ausgewähltes Element |
| MultiSelect |
Mehrfachselektion zulassen? |
| SelCount |
Anzahl der selektierten Elemente |
| Selected |
Array von booleschen Werten, ist
Element(i) selektiert? |
| Sorted |
Ist Liste sortiert? |
Wichtige Methoden:
AddItem Hinzufügen
eines Elements
Clear
Leeren der Liste
RemoveItem Entfernen eines Elements
ComboBoxEine ComboBox ist wie der Name schon sagt eine
Kombination aus TextBox und einer Liste.
In der TextBox kann der Anwender
Zeichen eingeben, während er in der Liste, die u.U. zugeklappt ist,
ein Element
auswählen kann.
Die Eigenschaft STYLE hat dabei eine besondere
Bedeutung:
Ist STYLE=0 (Dropdown Combo), so wird ein Textfeld mit
einer Dropdown-Liste
(also eine Liste, die nur auf Knopfdruck aufgeklappt wird)
dargestellt.
Der Benutzer kann eigene Texte eingeben.
Ist STYLE=1
(Simple Combo), wird sowohl eine Textbox als auch eine Liste, die ständig
aufgeklappt ist, angezeigt.
Der Benutzer kann ebenfalls eigene Texte
eingeben.
Ist STYLE=3 (Dropdown List), wird wie bei einem Dropdown
Combo ein Textfeld mit einer Dropdown-Liste dargestellt,
der Benutzer kann
jedoch keine eigenen Texte eingeben, die nicht in der Liste enthalten sind.
Zusätzlich zu den Eigenschaften einer Liste gibt es die Eigenschaft TEXT.
Wichtige Eigenschaften:
List
Liste der
Elemente als Strings (zur Laufzeit nur lesbar)
ListCount Anzahl der Elemente
ListIndex Aktuelles Element
Sorted Ist Liste sortiert?
Wichtige Methoden:
AddItem Hinzufügen eines Elements
Clear
Leeren
der Liste
RemoveItem Entfernen eines Elements
Wichtige Ereignisse:
Change
Text wurde
verändert
Eine
Besonderheit - Das Zeitgeber-Objekt
Das Zeitgeberobjekt (Timer, Uhr) veranlasst das
Auslösen eines beliebigen Ereignisses oder
einer beliebigen Ereignisbehandlungsroutine in bestimmten Intervallen.
Wichtige Eigenschaften:
Enabled Timer aktiviert oder nicht
aktiviert
Interval In welchen Abständen soll
ein Ereignis oder Anweisungen ausgeführt werden?
Angabe in Millisekunden!
Das Picture Objekt
Ermöglicht die Anzeige eines Bildes bzw. einer Graphik.
Das
Image Objekt
Ermöglicht die Anzeige eines Bildes.
Schieberegler
Horizontale und vertikale
angeordete Controls, um Werte anzuzeigen oder einzustellen, die in einem
bestimmten
Intervall mit definierter Untergrenze und Obergrenze liegen.
zum Abschluss noch zwei wichtige, flexible Objekte zur Anzeige und zur Eingabe
von Daten
Messagebox
Mit Hilfe der Messagebox wird eine einfache Meldung
optional mit Titel und verschiedenen Buttons ausgegeben.
Die Syntax dazu lautet: MSGBOX
( Text [, Buttons] [, Titel])
Dabei ist Text der in der Messagebox anzuzeigende Text, Buttons legt die
in der Box
angezeigten Buttons (z.B. OK, Cancel, etc.) fest und Titel ist der
Fenstertitel der Box.
Werden die Buttons weggelassen, so wird nur der
OK-Button angezeigt, ist der Titel nicht angegeben,
so wird standardmäßig der
Projektname eingeblendet.
Für die verschiedenen Buttons gibt es die folgenden
Konstanten:
| Konstanten |
Werte |
Bedeutung |
| vbOKOnly |
0 |
OK |
| vbOKCancel |
1 |
OK und Cancel |
| vbAbortRetryIgnore |
2 |
Beenden, Wiederholen, Ignorieren |
| vbYesNoCancel |
3 |
Ja, Nein, Abbrechen |
| vbYesNo |
4 |
Ja, Nein |
| vbRetryCancel |
5 |
Wiederholen, Abbrechen |
Beispielsweise
werden mit vbAbortRetryIgnore die Schaltflächen Beenden, Wiederholen und
Abbrechen dargestellt.
Zur visuellen Gestaltung gibt es folgende Konstanten,
die einfach hinzuaddiert werden müssen:
| Konstanten |
Werte |
Bedeutung |
| vbCritical |
16 |
Stop-Zeichen |
| vbQuestion |
32 |
Fragezeichen |
| vbExclamation |
48 |
Ausrufe-Zeichen |
| vbInformation |
64 |
Info-Zeichen |
Um den Standard-Button
festzulegen, addiert man einer der folgenden Konstanten:
| Konstanten |
Werte |
Bedeutung |
| vbDefaultButton1 |
0 |
Button 1 ist standardmäßig aktiv |
| vbDefaultButton2 |
256 |
Button 2 ist standardmäßig aktiv |
| vbDefaultButton3 |
512 |
Button 3 ist standardmäßig aktiv |
Zusätzlich
kann man die Messagebox an das Programm bzw. an das System binden,
d.h. das
Programm bzw. alle Anwendungen des Systems werden unterbrochen, bis die Box
geschlossen wurde.
Diesen Zustand nennt man Anwendungs- oder System-Modal.
Die dazugehörigen Konstanten sind vbApplicationModal (Wert 0) und vbSystemModal
(Wert 4096).
Die Funktion liefert je nach ausgewählten Button einen
entsprechenden Rückgabewert.
Und zwar gibt es die folgenden Konstanten:
| Konstante
| Wert
| Beschreibung |
| vbOK
| 1
| OK |
| vbCancel
| 2
| Abbrechen |
| vbAbort
| 3
| Abbruch |
| vbRetry
| 4
| Wiederholen |
| vbIgnore
| 5
| Ignorieren |
| vbYes
| 6
| Ja |
| vbNo
| 7
| Nein |
Beispiel: Abfrage vor Beenden eines
Programms
Das folgende Beispiel gibt eine Messagebox aus, die den
Anwender fragt,
ob er das Programm tatsächlich verlassen möchte. DIM answer AS INTEGER
answer = MSGBOX ("Programm wirklich verlassen?", vbYesNo, "Programm beenden")
IF answer = vbYes THEN
END
ELSE
EXIT SUB
END IF
Bemerkung:
Es ist grundsätzlich dringend anzuraten, Konstanten zu nutzen, wenn Visual Basic diese zur Verfügung stellt.
Es wird nicht garantiert, dass die Werte in den folgenden Versionen erhalten bleiben!
Im Übrigen ist es auch sehr sinnvoll, eigene Konstanten zu definfieren und diese anstatt von
Literalen zu verwenden. Eine Konstante vbYesNo ist nämlich wesentlich aussagekräftiger als das Literal 4.
Inputbox
Eine weitere Funktion ist die Inputbox, mit der man
einen einzeiligen Text vom Benutzer eingeben lassen kann.
Die Syntax dazu
lautet: InputBox(Text [, Titel] [,
Standardwert] [, xpos] [, ypos])
Dabei ist Text die auszugebende Meldung (beispielsweise eine Aufforderung
zur Eingabe eines Textes),
Titel ist wiederum der Titel des Fensters, Standard
ist eine Zeichenfolge, die als Voreinstellung im Textfeld
angezeigt werden soll
und xpos bzw. ypos bezeichnen die Koordinaten der Inputbox.
Beispiel:
Abfrage eines Benutzernamens
Das folgende Beispiel frägt einen
Benutzernamen ab und überprüft diesen. Ist der Benutzer nicht vorhanden, wird
das Programm mit dem Befehl END verlassen. DIM login AS STRING
login = INPUTBOX ("Geben Sie Ihren Login ein:", "Anmeldung")
IF login = "administrator" THEN
......
ELSEIF login = "gast" THEN
......
ELSE
MSGBOX "Benutzer nicht vorhanden!"
END IF