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