Einführung VB 6.0

Transcrição

Einführung VB 6.0
Programmierung
Einführung in Visual Basic 6.0
Grundlagen
Die Windows-Philosophie
Die Art und Weise, wie die Kommunikation mit dem Benutzer abläuft, dürfte
wohl der gravierendste Unterschied zwischen den klassischen Betriebssystemen
DOS und WINDOWS sein. Unter DOS „wartet“ das Programm auf eine Eingabe,
indem Tastatur und Maus zyklisch abgefragt werden. Alle peripheren Geräte agieren
relativ unabhängig voneinander.
Unter WINDOWS ist der Zugriff auf die Peripherie ins System integriert, Programme haben mit der Verwaltung von Tastatur, Maus, Bildschirm, Drucker . . . direkt nichts mehr zu tun, WINDOWS nimmt ihnen diese Arbeit ab, indem es sich
wie eine „Schale“ zwischen Ein-/Ausgabegeräte und Programm schiebt.
Die Benutzerschnittstelle unter DOS
Ein- und Ausgaben werden in sogenannte Nachrichten umgesetzt, die zum Programm geschickt und dort kontinuierlich verarbeitet werden. Ein weiterer Vorteil ist
das Multitasking, d.h. unter WINDOWS können mehrere Anwendungen gleichzeitig
in verschiedenen Fenstern laufen.
Objekt- und ereignisorientierte Programmierung
Vergleicht man zwischen einem „normalen“ Programm, welches aus einer langen
Liste von Anweisungen besteht, und einem WINDOWS-Programm, so stellt man
als erstes folgenden Hauptunterschied fest:
Die Benutzerschnittstelle unter WINDOWS
Im „normalen“ Programm werden die Befehle sequentiell abgearbeitet, d.h. Schritt
für Schritt hintereinander.
Unter WINDOWS hingegen laufen alle Aktionen ereignis- und objektorientiert
ab, eine streng vorgeschriebene Reihenfolge für die Eingabe und Abarbeitung der
Befehle gibt es nicht mehr. Für jede Aktivität des Anwenders ist ein Programmteil
zuständig, der weitgehend unabhängig von anderen Programmteilen agieren kann
und muss.
Etappen der Programmentwicklung
Wie der Name es schon andeutet, ist bei Visual Basic der visuelle Entwurf von
Bedienoberflächen integriert. Um dem Programm das gewünschte Outfit zu geben,
muss keine einzige Zeile Programmtext geschrieben werden. Visual Basic erlaubt eine systematische Vorgehensweise in folgenden drei Etappen:
Visueller Entwurf der Bedienoberfläche
Zuweisen der Objekteigenschaften
Verknüpfung der Objekte mit Ereignissen
Einführung Visual Basic 6.0.doc
1
Programmierung
Programm „Quadratische Gleichung“
Einführung
Sie werden nun die einzelnen Vorgehensschritte anhand des Beispieles „Quadratische Gleichung“ kennenlernen. Dieses Programm berechnet, ausgehend von der allgemeinen Form, die beiden Lösungen der quadratischen Gleichung.
Zur Erinnerung ist hier die Lösungsformel der quadratischen Gleichung noch einmal aufgeführt.
Al lg emeine Form
Ax 2 + Bx + C = 0
Lösungformel
x1,2 =
− B ± B2 − 4 ⋅ A ⋅ C
2⋅A
Visueller Entwurf der Oberfläche
TextBox (tb)
Label (lbl)
TextBox (tb)
CommandButton
(cmd)
Gestalten Sie das abgebildete Formular mit Hilfe der Werkzeugsammlung.
Die Beschriftungen, Farben, Schriftart, etc. der einzelnen Steuerelemente (z.B. Schalter Berechnen) werden im Eigenschaftsfenster eingegeben.
Zuweisen der Objekteigenschaften
Das Eigenschaftsfenster listet alle zu verändernden Eigenschaften eines markierten Controls auf. In der linken Spalte sind die Eigenschaften und in der rechten die
zugehörigen Einstellungen dargestellt.
Hier sind einige wichtige Eigenschaften aufgelistet:
Alignment
Links-/Rechtsbündig
BackColor
Hintergrundfarbe
Caption
Beschriftung (z.B. Berechnen)
Font
Schriftart
Name
Name des Controls (z.B. cmdBerechnen)
TabIndex
Aktivierungsreihenfolge des Tabulators
BorderStyle
Rahmenart
Eigenschaftsfenster
1. Die Controls müssen nun mit dem Eigenschaftsfenster beschriftet werden. Dies
geschieht folgendermassen:
Label „Quadratische Gleichung“ anklicken – das dazugehörige Eigenschaftsfenster wird angezeigt. Im Eigenschaftsfenster neben Caption, Quadratische Gleichung: eingeben. Bei Font können Sie die Schriftgrösse ändern. Unter BackStyle wählen Sie
0 - Transparent aus. Bei Namen können Sie Label1 stehen lassen.
Einführung Visual Basic 6.0.doc
2
Programmierung
2.Die anderen Controls müssen ebenfalls beschriftet werden:
Formular Form1:
Name
→
BackColor
→
StartUpPositionon →
frmQuadratischeGleichung
hellgelb
Bildschirmmitte
TextBox A:
Name
Alignment
Text
→
→
→
tbVariable_a
Zentriert
muss gelöscht werden
TextBox B:
Name
Alignment
Text
→
→
→
tbVariable_b
Zentriert
muss gelöscht werden
TextBox C:
Name
Alignment
Text
→
→
→
tbVariable_c
Zentriert
muss gelöscht werden
TextBox x1:
Name
Alignment
BackColor
Text
→
→
→
→
tbLösung1
Zentriert
hellblau
muss gelöscht werden
TextBox x2:
Name
Alignment
BackColor
Text
→
→
→
→
tbLösung2
Zentriert
hellblau
muss gelöscht werden
CommandButton
Berechnen:
Name
Caption
→
→
cmdBerechnen
&Berechnen
(& → Bedienung über Tastatur)
CommandButton
Neu:
Name
Caption
→
→
cmdNeu
&Neu
(& → Bedienung über Tastatur)
CommandButton
Abbrechen:
Name
Caption
→
→
cmdAbbrechen
&Abbrechen
(& → Bedienung über Tastatur)
Verknüpfung der Objekte mit Ereignissen
Für den erfolgreichen Programmablauf müssen nun die Eingaben ausgewertet und
das Ergebnis berechnet werden.
Klicken Sie doppelt auf den CommandButton Berechnen. Es erscheint folgendes
Fenster:
Einführung Visual Basic 6.0.doc
3
Programmierung
Im Programmcode Fenster wird der Basic-Programmtext für das jeweilige Ereignis eines Controls in Form einer sogenannten Prozedur geschrieben. Nun muss man
den Programmtext schreiben, der zur Berechnung der Lösung(en) einer Quadratischen Gleichung führen soll, wenn der Anwender während des Programmablaufs
auf den CommandButton Berechnen klickt.
Der notwendige Programmtext ist also direkt an das Steuerelement CommandButton geknüpft und wird ausgeführt, sobald der Anwender mit der Maus auf den
CommandButton klickt. Deswegen heisst eine solche Prozedur auch Ereignisprozedur, da sie beim Ereignis Click des CommandButtons aufgerufen wird. Im Programmcode - Fenster sehen Sie die vorgegebenen Zeilen (siehe Abbildung). Diese
bilden den Rumpf der Ereignisprozedur, die Sie nun schreiben sollen. Dieser Prozedurrumpf wird von Visual Basic automatisch erzeugt.
cmdBerechnen_Click() ist der Name der Ereignisprozedur, die beim einfachen
Mausklick (Click) auf dem CommandButton Berechnen ausgeführt wird. Ereignisprozeduren sind hauptsächlich an Maus- oder Tastaturaktionen des Anwenders geknüpft.
Nun soll eine Quadratische Gleichung gelöst werden. Das folgende Struktogramm
zeigt den Programmablauf, der beim Drücken des CommandButton Berechnen ausgelöst wird. Das Struktogramm ist wie folgt zu interpretieren:
Exit
a+b+c=""
J
Exit
1. Sind Faktoren eingegeben worden? („+“ entspricht ODER-Verknüpfung)
Quadratische Gleichung
N
MSGBox Faktoren eingeben
J
MSGBox Division durch Null
a =0
N
Diskriminante D rechnen
Diskriminante D >= 0
J
beide Lösungen berechnen
N
MSGBox Die Lösungsmenge ist leer
beide Lösungen anzeigen
J
D=0
N
MSGBox Achtung
nur eine Lösung
2. Wenn nicht → Message Box (MsgBox) ausgeben und Prozedur abbrechen
3. Ist Faktor a Null?
4. Wenn ja → MsgBox und Prozedur abbrechen
5. Diskriminante berechnen
6. Diskriminante überprüfen ob >= 0
7. Wenn ja → Lösungen berechnen und beide Lösungen anzeigen, sonst MsgBox
8. Diskriminante = 0 → beide Lösungen gleich → MsgBox
Fügen Sie zwischen die Zeilen Private Sub cmdBerechnen_Click() und End Sub den folgenden Programmtext ein:
Private Sub cmdBerechnen_Click()
a = tbVariable_a
b = tbVariable_b
c = tbVariable_c
If a = "" Or b = "" Or c = "" Then
MsgBox "Bitte geben Sie die Faktoren ein!", 0, "Achtung!"
Exit Sub
End If
If a = 0 Then
MsgBox "Division durch Null!", 0, " Achtung!"
Exit Sub
End If
End Sub
Nun können Sie die ersten Programmzeilen testen. Klicken Sie auf das Symbol für
Start oder wählen sie den Befehl Starten im Menü Ausführen oder drücken Sie die Taste [F5].
Einführung Visual Basic 6.0.doc
4
Programmierung
Testen Sie die Funktion des Programms, indem Sie alle Felder leer lassen und den
CommandButton Berechnen drücken. Es sollte nun eine MsgBox erscheinen.
Geben Sie in das Feld für den Faktor A den Wert 0, für den Faktor B den Wert 0
und für den Faktor C den Wert -16 ein, nun sollte ebenfalls eine MsgBox erscheinen.
Beenden Sie den Probelauf mit dem Symbol für Beenden in der Symbolleiste.
Fortsetzung des Programms
Nun muss noch die eigentliche Berechnung der beiden Lösungen geschrieben
werden. Ergänzen Sie das Programm mit folgenden Zeilen:
Private Sub cmdBerechnen_Click()
a = tbVariable_a
b = tbVariable_b
c = tbVariable_c
If a = "" Or b = "" Or c = "" Then
MsgBox "Bitte geben Sie die Faktoren ein!", 0, "Achtung!"
Exit Sub
End If
If a = 0 Then
MsgBox "Divison durch Null!", 0, "Achtung!"
Exit Sub
End If
diskriminante = b ^ 2 - (4 * a * c)
If diskriminante >= 0 Then
x1 = (-b + Sqr(diskriminante)) / (2 * a)
x2 = (-b - Sqr(diskriminante)) / (2 * a)
tbLösung1 = Format$(x1, "fixed")
tbLösung2 = Format$(x2, "fixed")
If diskriminante = 0 Then
MsgBox "Es gibt nur eine Lösung!", 0, "Achtung!"
End If
Else
MsgBox "Keine Lösung im reelen Zahlenbereich", 0, "Achtung!"
Exit Sub
End If
End Sub
Auch diesen Programmteil testen Sie wieder indem Sie das Symbol für Start anklicken. Die drei prinzipiellen Lösungen müssen kontrolliert werden.
Geben Sie die folgenden Faktoren ein: A = 0.75, B = -7.5 und C = 24.75. Danach
drücken Sie Berechnen. Nun sollte eine MsgBox erscheinen und mitteilen, dass keine
Lösung im reelen Zahlenbereich existiert.
Bei den Faktoren A = 1, B = 6 und C = 5 sollten die Lösungen x1,2 = {-1;-5} angezeigt werden.
Mit A = 1, B = 6 und C = 9 sollte beide Lösungen gleich gross sein und eine
MsgBox sollte dies noch ausdrücklich melden.
Einführung Visual Basic 6.0.doc
5
Programmierung
Variablen
Variablen sind Speicherplätze, die man über einen Namen ansprechen kann. In
unserem Beispiel benötigen wir die Variablen: a, b, c, diskriminante, x1, x2. Diese
Angaben sind variabel, da der Anwender sie erst während der Programmausführung
angibt.
Datentypen
Bislang erzeugten wir die benötigten Variablen im Programm ganz einfach dadurch, dass wir diesen beim ersten Auftreten einen Wert zuwiesen. Visual Basic bietet die Möglichkeit, einer Variablen vor ihrer ersten Benutzung einen Datentyp zuzuordnen. Damit legt man fest, welche Werte die Variable annehmen kann.
Der Befehl dieser Festlegung lautet: Dim Variable As Datentyp
Folgende Standarddatentypen existieren:
Datentyp
Wertebereich
Integer
Single
String
Long
Double
Byte
Boolean
Date
Variant
Ganze Zahlen von –32‘768 bis +32‘767
Gleitkommazahlen mit 7-stelliger Genauigkeit
Zeichenketten mit bis zu 65‘535 Zeichen
Ganze Zahlen von –2‘147‘483‘648 bis +2‘147‘483‘647
Gleitkommazahlen mit 16-stelliger Genauigkeit
Ganze Zahlen von 0 bis 255
True oder False (Wahrheitswerte)
1. Januar 100 bis 31. Dezember 9999
Beliebiger Datentyp
Fügen Sie nun diese Variablendeklaration in Ihr Programm ein:
Private Sub cmdBerechnen_Click()
Dim a, b, c, diskriminante, x1, x2 As Single
a = tbVariable_a
b = tbVariable_b
c = tbVariable_c
If a = "" Or b = "" Or c = "" Then
MsgBox "Bitte geben Sie die Faktoren ein!", 0, "Achtung!"
Exit Sub
End If
Nun sind die Variablen a, b, c, diskriminante, x1, x2 als Typ Single definiert.
Option Explicit
Nun müssen wir Visual Basic mitteilen, dass nur solche Variablen im Programm
benutzt werden dürfen, denen zuvor ein Datentyp zugeordnet wurde. Dazu bedienen wir uns des Befehls Option Explicit. Somit können Tippfehler bei Variablen verhindert werden.
1. Öffnen Sie das Programmcode Fenster durch Doppelklick auf den CommandButton Berechnen.
Einführung Visual Basic 6.0.doc
6
Programmierung
2. Klicken Sie auf die Schaltfläche neben dem Text cmdBerechnen.
3. Wählen Sie in der nun geöffneten Liste den Eintrag (Allgemein) aus, indem sie
diesen anklicken.
4. Geben Sie nun Option Explicit ein.
Der CommandButton Neu
Bei einem Maus-Klick auf den CommandButton Neu sollen alle Felder gelöscht
werden und der Cursor im ersten Feld sein.
1. Dazu öffnen Sie das Programmcode Fenster des CommandButton Neu durch einen Doppelklick.
2. Das folgende Programmcode Fenster erscheint – ergänzen Sie die fehlenden Zeilen.
Wenn der CommandButton Neu angeklickt wird, werden die drei Eingaben a, b
und c gelöscht, der Cursor in das erste Feld gesetzt und die beiden Lösungsfenster
gelöscht.
Testen Sie nun diese Ergänzung mit einem Probedurchlauf!
Der CommandButton Abbrechen
Sobald dieser Schalter betätigt wird, sollte das Programm abgebrochen werden
und die Form geschlossen werden.
1. Dazu öffnen Sie das Programmcode Fenster des CommandButton Abbrechen
2. Das folgende Programmcode Fenster erscheint – ergänzen Sie die fehlenden Zeilen.
Testen Sie nun diese Ergänzungen mit einem Probedurchlauf!
Einführung Visual Basic 6.0.doc
7
Programmierung
Gefilterte Eingaben
Da wir die Variablen a, b, c als Single definiert haben, dürfen in diesen Textboxen
auch nur Zahlen – mit einer bestimmten Länge – eingegeben werden. Ansonsten
würde das Programm abstürzen. Die Länge einer Zahl (Grösse) kann man mit VB
einfach begrenzen.
1. Das Eigenschaftsfenster für die Textbox tbVariable_a öffnen.
2. Die Eigenschaft MaxLength auf 6 setzen, d.h. es können in diesem Feld nur max.
6 Zahlen eingegeben werden.
3. Stellen Sie diese Eigenschaft auch bei den anderen Eingaben tbVariable_b und
tbVariable_c ein.
Die Eingabebeschränkung auf Zahlen ist ein bisschen komplizierter:
1. Doppelklick auf die Textbox tbVariable_a – das Programmcode Fenster dieser
Textbox erscheint.
2. Ändern Sie die Prozedur von Click auf KeyPress, d.h. sobald eine Taste gedrückt
wird, wird diese Prozedur durchgelaufen.
3. Ergänzen Sie die fehlenden Zeilen.
4. Die Prozedur überprüft nun ob die Eingabe (als ASCII-Zeichen) eine Zahl ist oder nicht.
5. Führen Sie diese Ergänzung auch bei den anderen zwei Textboxen tbVariable_b
und tbVariable_c durch.
Testen Sie nun auch diese Ergänzung mit einem Probedurchlauf! Versuchen Sie bei
der Eingabe Buchstaben einzutippen. Sie werden sehen, dass dies nicht möglich ist!
Resultat Anzeige
Das Resultat wird leider nur auf zwei Stellen nach dem Komma angezeigt. Das
genaue Resultat könnte durch ein MsgBox angezeigt werden, wenn man auf die gewünschte Textbox doppelklickt.
1. Doppelklick auf die Textbox tbLösung1 bzw. tbLösung2
2. Das folgende Programmcode Fenster erscheint - ergänzen Sie die fehlenden Zeilen.
3. Die Variablen x1 und x2 müssen global deklariert werden.
Testen Sie nun diese Ergänzungen mit einem Probedurchlauf!
Einführung Visual Basic 6.0.doc
8
Programmierung
Eine exe-Datei erzeugen
Hat alles funktioniert, können Sie von Visual Basic eine exe-Datei, also eine ausführbare Programmdatei, erzeugen lassen. Eine exe-Datei kann, ohne Visual Basic
zu starten, unter WINDOWS ausgeführt werden.
1. Wählen Sie den Menüpunkt exe-Datei erstellen im Menü Datei.
2. Wählen Sie den gewünschten Ordner.
3. Geben Sie für Dateiname Quadratische Gleichung an und bestätigen Sie mit OK.
4. Im gewählten Ordner wird dann die entsprechende Programmdatei erzeugt.
Das fertige Produkt
Einführung Visual Basic 6.0.doc
9

Documentos relacionados