| Steuerelemente, Steuerelementefeld, Errorhandling |
| | |
| | |
| Steuerelemente | sind Komponenten, die z.B. in der Werkzeugsammlung enthalten sind. Die wichtigsten Elemente sind standardgemäß "fest" eingebaut, können also aus der Werkzeugsammlung nicht entfernt werden. | |
| besitzen Namen, die zunächst automatisch vergeben werden, jedoch aussagelos sind (z.B. Form1, Label1). Es wird empfohlen, jedem Element einen aussagekräftigen Namen zu geben, dem ein Präfix vorangesetzt wird. Es gelten folgende Namenskonventionen: | |
| frm = Form Formular | frmBestand |
| fra = Frame Rahmenfeld | fraOptionen |
| cmd = CommandButton Schaltfläche | cmdStart |
| lbl = Label Bezeichnungsfeld | lblAusgabeZins |
| txt = TextBox Textfeld | txtEingabe |
| pic = PictureBox Bildfeld | picAusgabeWert |
| img = Image Anzeige (von Bildern) | imgMeinBild |
| opt = OptionButton Optionsfeld | optEnglisch |
| chk = CheckBox Kontrollkästchen | chkBarzahlung |
| tmr = Timer Zeitgeber | tmrTimer1 |
| lst = Listbox Listenfeld | lstMannschaften |
| cbo = ComboBox Kombinationsfeld | cboSchriftarten |
| vsc = VScroll Vert. Bildlaufleiste | vscVertikal |
| hsc = HScroll Horiz.Bildlaufleiste | hscHorizontal |
| besitzen Eigenschaften, die das Verhalten und Aussehen ändern können. Neue Werte kann man im Eigenschaftenfenster (Taste F4) zuweisen, z.B.: | Name, BorderStyle, Caption, Left, Top, Backcolor, Sorted, Font... |
| Über das Menü Projekt: Komponenten kann man jederzeit neue Steuerelemente in die Werkzeugsammlung laden. Diese müssen sich in Gestalt einer OCX-Datei auf dem PC befinden. | |
| Größe und Position der Steuerelemente werden in der Maßeinheit Twips angegeben. Das Twip ist eine Längeneinheit, die von der Bildschirmauflösung abhängig ist. | Über die ScaleMode-Eigenschaft kann man aber auch andere Maßeinheiten einstellen! |
| 567 Twips entsprechen einem logischen Zentimeter, also einem Bildschirmzentimeter, der beim Ausdruck 1 cm lang ist. | |
Steuerelemente- Feld | Steuerelemente in einem SteuerelementeFeld besitzen immer einen Index, der in Klammern auf den Namen des Steuerelements folgt. | For counter = 1 To 20 txtEingabe(counter).Text = "AlterWert" Next |
| Dieselbe Schleife geht auch mit LBound und UBound: | For counter = txtBox.LBound To txtBox.Ubound txtBox(counter).Text = "NeuerWert" Next |
| Oder auch gemischt: | For n = 0 To picBild.Ubound picBild(n).BackColor = vbRed Next |
| Bei der Ereignisprozedur kann der Index wie folgt übergeben werden: | Private Sub picBild_Click(Index As Integer) Befehle End Sub |
| Ereignisse der Steuerelemente | Wichtige Ereignisse der Steuerelemente (SE) sind: | |
| das SE wird (doppelt) angeklickt | Click, DblClick |
| das SE erhält den Fokus | GotFocus |
| eine Taste wird gedrückt, aber noch nicht wieder losgelassen. Der Tastaturcode der gedrückten Taste wird übergeben | KeyDown |
| eine Taste wird gedrückt und das SE besitzt den Fokus. Hier wird der Zeichencode der gedrückten Taste übergeben | KeyPress |
| eine gedrückte Taste wird wieder losgelassen. Der Tastaturcode der gedrückten Taste wird übergeben | KeyUp |
| das SE verliert den Fokus | LostFocus |
| eine der Maustasten wird geklickt, wenn sich der Mauszeiger in der Innenfläche des SE befindet | MouseDown |
| der Mauszeiger wird in der Innenfläche des SE bewegt | MouseMove (Argumente: Button, Shift, X, Y) |
| die Maustaste wurde wieder losgelassen | MouseUp |
| bevor das SE den Fokus verliert, kann (z.B. bei Textfeldern) eine Überprüfung des Inhalts durchgeführt werden | Validate |
| Jedes Steuerelement kann auf eine bestimmte Anzahl an Ereignissen reagieren, jedoch nur das SE, das den Eingabefokus besitzt. | |
| Auf einem Formular wird der Eingabefokus auf die nächste Schaltfläche oder das nächste Textfeld mit der Tab-Taste dirigiert. | |
| Tastaturereignisse sind z.B.: | KeyDown, KeyPress, KeyUp |
| "Zeichen"-Tasten sowie die Eingabetaste. Diese lösen Ereignisse in Zeichencode aus: | Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyEnter Then |
| Einige Tasten können kein KeyPress-Ereignis auslösen, z.B. die Umschalttaste. Hier können nur Ereignisse mit dem Tastaturcode ausgelöst werden: | Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) |
Steuerelement Command Button | ist für das Auslösen von Aktionen zuständig (Bestätigen, Abbruch, Ja, Nein, OK usw...). Ausgelöst wird mit einem Mausklick auf die Schaltfläche: | Sub cmdStart_Click () |
| kann beliebige Grössen annehmen und Bilder enthalten, muss aber stets rechteckig sein. Wichtige Eigenschaften sind: | |
| Caption: Legt den Text fest, der in der Schaltfläche erscheint. | cmdStart.Caption:="Titelstory" |
| Cancel: Ist diese Eigenschaft True, kann das Click-Ereignis auch durch Betätigen der Esc-Taste ausgelöst werden. | cmdStart.Cancel = True |
| Picture: Legt eine Bilddatei fest, die bei Style=1 in der Innenfläche angezeigt wird. | cmdStart.Picture = "Bild.gif" |
| Style: Legt fest, ob sich die Schaltfläche normal (Style=0) oder grafisch (Style=1) verhält. | cmdStart.Style = 1 |
Steuerelement Label | kann nur kleine Textmengen ausgeben, also nicht entgegennehmen. Den Text gibt man nur in das Eigenschaftsfeld Caption ein. Beispiel: Beim Berühren mit der Maus wird der Text im Label unterstrichen: | Private Sub Label1_MouseMove () Label1.Font.Underline = True |
kann keinen Eingabefokus erhalten. Mit Label werden andere Steuerelemente nur beschriftet, z.B. als Überschrift für eine TextBox. Wichtige Eigenschaften sind: | |
| BorderStyle: das Feld erhält eine Umrandung. | Label1.BorderStyle = 1 |
| Alignment: der Text kann links, rechts oder zentriert ausgerichtet werden. | Label2.Alignment = 0 |
Steuerelement TextBox | kann Text ausgeben, sowie Text entgegennehmen. Den Text gibt man entweder in das Feld Eigenschaften Text, oder direkt in die auf dem Formular angeordnete Textbox ein. Löschbefehl: .Text = "" | txtBeispiel.Text = "Hallo" |
| enthält keine Caption-Eigenschaft, also nicht mit dem Steuerelement Label verwechseln. Wichtige Eigenschaften sind: | |
| MultiLine=True (in Verbindung mit der Eigenschaft ScrollBars 1, 2 oder 3): man kann beliebig viele Zeichen eingeben (bei Drücken der Return-Taste springt die Textmarke dann in die nächste Zeile). | txtBeispiel.MultiLine = True |
| MaxLength=0 bedeutet eine maximale Textlänge von 65.000 Zeichen. Wird die Eigenschaft MultiLine=True hinzugeschaltet, können etwa 2 Milliarden Zeichen dargestellt werden. | txtBeispiel.MaxLenght = 10 |
| PasswordChar legt ein Zeichen fest (z.B. *), das anstelle des eingegebenen Zeichens angezeigt wird. Auf diese Weise lassen sich eingegebene Worte 'maskieren'. Hierzu muss man die Eigenschaft MultiLine=False setzen. | txtBeispiel.PasswordChar = "#" |
| SelStart gibt die Position des selektierten Textes relativ zum Beginn des Textes an (das erste Zeichen besitzt die Position 0). Durch Setzen von SelStart kann der Beginn der Markierung verschoben werden. | With txtStartKapital .SelStart = 0 .SelLength = Len(.Text) .SetFocus End With |
| SelLength gibt die Länge des ausgewählten Textes in Zeichen an. Durch Setzen von SelLength in der Prozedur kann die Länge des selektierten Textes verändert werden. |
| SelText stellt den selektierten Text dar. |
| HideSelection legt fest, ob die Anzeige einer Markierung erhalten bleibt, wenn das Textfeld den Eingabefokus verliert (=False), oder aufgehoben wird (=True). | txtBeispiel.HideSelection = True |
Steuerelement PictureBox | ist für die Anzeige von Text und Bildern zuständig. Löschbefehl = .Cls | picBeispiel.Cls |
| Unterstützt werden die Grafikformate: bmp, gif, jpg, wmf, ico, cur, emf, dib. | |
| kann man während der Programm-Ausführung nicht in der Größe ändern (jedenfalls nicht ohne Tricks). | |
Steuerelement Image | ist ausschließlich für die Anzeige von Bildern zuständig. | |
| Unterstützt werden die Grafikformate: bmp, gif, jpg, wmf, ico, cur, emf, dib. | |
| kann man während der Programm-Ausführung in der Größe ändern. | |
| Mit der Eigenschaft Stretch lassen sich Bitmaps stufenlos vergrößern / verkleinern. | imgBild.Stretch = True |
Steuerelement OptionButton | Wird nur in einer Gruppe eingesetzt. In dieser Gruppe kann immer nur ein OptionButton aktiv sein. | |
| Mehrere unabhängige Gruppen müssen in Frames oder PictureBoxes gruppiert werden, die die Rolle eines Containers innerhalb des Formulars spielen. Zuerst muss aber der Container angelegt und dann die OptionButtons im Container erzeugt werden. | |
| Style = 1 (der OptionButton erscheint als "CommandButton"; ein Bild kann eingefügt werden) | cmdButton.Style = 1 |
| Value = True (das OptionsFeld ist eingedrückt) | Value = True |
Steuerelement CheckBox | Es können beliebig viele Kontrollkästchen unabhängig voneinander ein- oder ausgeschaltet werden. | |
| Style = 1 (die CheckBox erscheint als "CommandButton"; ein Bild kann eingefügt werden) | |
| Value = 1 (die CheckBox ist angekreuzt) | Value = 1 |
Steuerelement Timer | ist für zeitgesteuerte Programmausführung zuständig. | |
| Enabled schaltet den Zeitgeber ein; z.B. beim Laden des Programms: Private Sub Form_Load() | Timer1.Enabled = True |
| Interval setzt einen Zeitintervall (1000 = eine Sekunde). | Timer1.Interval = 1000 |
| Auszuführende Timer-Befehle stehen erst in der Prozedur: Private Sub Timer1_Timer() | |
| z.B. Bildweite in gewissen Zeitabständen vergrößern: | Bild1.Width = Bild1.Width + 100 |
| z.B. Farbe eines Formulars verändern: | Me.BackColor = RGB(255, 0, 0) |
| z.B. Zeitanzeige der Titelleiste ständig aktualisieren: | Me.Caption = "Es ist" & Time & "Uhr" |
| z.B. Bildfeld über ein Formular bewegen: | Image1.Move Image1.Left + DeltaX, Image1.Top + DeltaY |
Steuerelement ListBox | Löschbefehl = Clear. Gegenüber der ComboBox hat die ListBox folgende Vorteile: Bei Style = 1 werden die Einträge in Form von Kontrollkästchen angezeigt; Columns-Eigenschaft (Anzahl von Spalten); MultiSelect, Selected sowie SelCount. | lstBeispiel.Clear |
| List, ListCount, ListIndex gibt den Wert eines Listenfeldes zurück oder weist ihn zu. Der erste Wert hat immer den Index 0. | lstKunden.List(7) = "Herr Meier" Wert = lstArtikel.List(lstArtikel.ListIndex) |
| AddItem fügt einen Wert in das Listenfeld hinzu. Wird der Wert an eine bestimmte Position gesetzt, erhält er ein zweites Argument. RemoveItem löscht einen Wert (zum Löschen aller Werte Clear verwenden). | lstMannschaft.AddItem "Hamburger SV" lstMannschaft.AddItem "Köln", 18 |
MultiSelect = 1 (man kann einzelne Einträge einer Liste mit Mausklicks auswählen). MultiSelect = 2 (man kann Einträge einer Liste mit gedrückter Maustaste fortlaufend auswählen). | For n = 0 To lst3.ListCount - 1 If lst3.Selected(n) = True Then _ Debug.Print lst3.List(n) Next n |
| Durch Setzen der Selected-Eigenschaft auf False kann eine Auswahl wieder aufgehoben werden. | |
Steuerelement ComboBox | List, ListCount, ListIndex gibt den Wert einer ComboBox zurück oder weist ihn zu. Der erste Wert hat immer den Index 0. | |
| Style = 0 (Textfeld wird mit Pfeilsymbol angezeigt, dass eine Liste öffnet = Standardeinstellung). | |
| Style =1 (Text und geöffnete Liste werden angezeigt; die Liste muss über die Height-Eigenschaft sichtbar gemacht werden). | |
| Style = 2 (Nur Listenauswahl möglich, jedoch keine Eingabe ins Textfeld). | |
Steuerelemente HScroll und VScroll | Horizontale und vertikale Bildlaufleisten sind Elemente, mit deren Hilfe man einen Wert in einem bestimmten Bereich, den man über die Eigenschaften Min und Max festlegt, einstellen kann. Negative Werte sind erlaubt. | hscRegler.Min = -10 hscRegler.Max = 10 |
| Value (Aktueller Wert der Bildlaufleiste). | vscRegler.Value = 0 |
| Large Change und SmallChange (Legt den Betrag fest, um den sich die Value-Eigenschaft ändert, wenn man die Einstellfläche (Large) oder eines der beiden Pfeilsymbole (Small) anklickt. Negative Werte sind nicht erlaubt. | vscRegler.LargeChange = 2 |
| Scroll (dieses Ereignis wird ausgelöst, wenn der Schieber mit der Maus verschoben wird). | |
| Errorhandling | Fehlerbehandlung aktivieren. | On Error Goto err_handler |
| Fehlerbehandlung übergehen. | On Error Resume Next |
| Fehlerbehandlung deaktivieren. | On Error Goto 0 |
| Der fehlerverursachende Befehl wird noch einmal ausgeführt. | Resume |
Der fehlerverursachende Befehl wird nicht noch einmal ausgeführt. | Resume Next |
Debug-Methode, um das Programm an einer bestimmten Stelle anzuhalten | Stop |
| Error-Objekt, das einen Fehlertext liefert. | MsgBox Err.Description |
| Error-Objekt, das eine Fehlernummer liefert. | MsgBox Err.Number |
| Löst einen Fehler aus. | Err.Raise |
| | |