Kapitel 3: Formulare und Steuerelemente
Beim Loslassen der Maustaste wird der selektierte Text angezeigt:
Private Sub Text0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Bezeichnungsfeld0.Caption = Text0.SelText
End Sub
Test
Nach dem Öffnen des Formulars können Sie sich von der Wirksamkeit jeder einzelnen Maßnahme über-
zeugen. Selektieren Sie mit der Maus einen Textbereich, so wird dieser sofort in das Bezeichnungsfeld über-
nommen.
Beachten Sie auch die gewollten Ausnahmen, z.B. dass die
-Taste (KeyAscii = 8) ihre Wirkung auch bei
reiner Zahleneingabe beibehält.
Den Text können Sie auch mit Hilfe der Registerkarten »Schriftart« und »Rich-Text« formatieren.
Bemerkungen
Einen vorzeitigen Zeilenumbruch erreichen Sie mit der Tastenkombination
Strg
+ .
Neben SelText sind auch noch die Eigenschaften SelStart und SelLength erwähnenswert, die die Anfangs-
position des markierten Bereichs und die Anzahl markierter Zeichen wiedergeben.
Eine ASCII-/ANSI-Tabelle finden Sie im Anhang C des Buchs.
In ungebundene Textfelder ein- und ausgeben
TextBox-Objekt: KeyUp-Ereignis; Format$-Funktion; Klassenmodul (eigenständig)
Das Windows-typische Prinzip der objekt- und ereignisorientierten Programmierung gestattet es, dass man
bei Berechnungen auf eine Ergebnistaste (=), wie z.B. beim Taschenrechner, verzichten kann. Stattdessen
kann das Ergebnis sofort angezeigt werden, wenn irgendein Eingabewert verändert wurde. Wie Sie im vor-
liegenden Beispiel erkennen, kann man dabei sogar auf eine Unterscheidung zwischen Ein- und Ausgabefel-
dern völlig verzichten.
Oberfläche
Auf den Detailbereich eines neuen Formulars platzieren Sie drei Textfelder (Text1, Text2, Text3) mit den
entsprechenden Bezeichnungsfeldern.
Quelltext
Wir greifen aus reiner Bequemlichkeit auf das in Kapitel 5 entwickelte Klassenmodul CKreis zurück,
welches Sie zunächst in die Datenbank importieren sollten (Quellcode siehe Buch-CD). Anschließend
schreiben Sie den folgenden Formularcode:
Option Compare Database
Option Explicit
Dim krs As New CKreis ' ein Kreis-Objekt erzeugen
176
HINWEIS
Die Tastaturereignisse werden am besten im
OnKeyUp
-Event des jeweiligen Textfeldes ausgewertet:
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) ' Radius-Eingabe/Anzeige
krs.radius = Val(Text1.Text)
Text2.Value = Format$(krs.umfang * 1000, "0\.000")
Text3.Value = Format$(krs.flaeche * 1000, "0\.000")
End Sub
Private Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer) ' Umfang-Eingabe/Anzeige
krs.umfang = Val(Text2.Text)
Text1.Value = Format$(krs.radius * 1000, "0\.000")
Text3.Value = Format$(krs.flaeche * 1000, "0\.000")
End Sub
Private Sub Text3_KeyUp(KeyCode As Integer, Shift As Integer) ' Flächen-Eingabe/Anzeige
krs.flaeche = Val(Text3.Text)
Text1.Value = Format$(krs.radius * 1000, "0\.000")
Text2.Value = Format$(krs.umfang * 1000, "0\.000")
End Sub
Test
Öffnen Sie das Formular und überzeugen Sie sich von den Vorzügen der objekt- und ereignisorientierten
Programmierung, wie sie unter Windows möglich ist.
Abbildung 3.19 Ein-/Ausgabe in Textfeldern
Egal ob Sie Radius, Umfang oder Fläche eingeben, wie von Geisterhand ändern die anderen Felder sofort
ihren Wert. Kommas können zwar auch eingegeben werden, bleiben aber unberücksichtigt.
Wie Sie das vermaledeite Komma bei der Eingabe rigoros ausmerzen können, zeigt das Praxisbeispiel »Das
Textfeld programmieren« (Seite 174).
Bemerkungen
Bestimmt haben Sie sich schon über die ungewöhnlichen Format$-Anweisungen gewundert, mit welcher
die drei Nachkommastellen und mindestens eine Vorkommanull erzwungen werden. Die besondere
Programmierung resultiert aus der deutschen Ländereinstellung in Windows. Als Dezimaltrennzeichen
funktioniert bei der Zahleneingabe (Val-Funktion) nur der Punkt, nicht aber das Komma. Hätten wir, wie
normal üblich, z.B. eine solche Ausgabeanweisung vorgenommen:
Text1.Value = Format$(krs.radius, "##0.000")
so wäre in den beiden anderen Feldern jeweils das ungeliebte Komma als Dezimaltrennzeichen erschienen.
Dies führt natürlich zu Komplikationen, da diese Felder ja auch gleichzeitig zur Eingabe dienen.
177
Praxisbeispiele

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.