Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache

January 29, 2016 | Author: Klemens Maurer | Category: N/A
Share Embed Donate


Short Description

Download Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache...

Description

Dipl. Ing. (FH) Hans-Peter Kiermaier

Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache

1

(C)2009, Kiermaier

Allgemeines

(C)2009, Kiermaier

Die Geschichte von VisualBasic oder kurz VB: 1991 1992–1993 1996–1998 2002–2003 2005–

Visual Basic 1 und Visual Basic für DOS Visual Basic 2-3 – Entwicklungsumgebung 16Bit, Win3.1 Visual Basic 4-6 – 32 Bit und COM, alle Windowsvers. Visual Basic .NET, basierend auf MS-Framework Visual Basic 8 und 9

Ableger von VisualBasic Classic: Visual Basic Script (kurz: VBScript oder VBS) ist eine interpretierte VisualBasic-Variante, die zum Erstellen von dynamischen Webseiten oder WindowsScripts eingesetzt wird (und für die meisten PC-Viren). Visual Basic for Applications (kurz: VBA) ist ebenfalls eine interpretierte objektorientierte Sprache, die hauptsächlich in Officeanwendungen verwendet wird. 2

Warum das alte VisualBasic Classic?

(C)2009, Kiermaier

Vorteile:  Sehr leicht und schnell erlernbar (viel leichter als VB .NET)  liefert schnell ansehnliche Ergebnisse  gut dokumentiert und leistungsstarke Hilfen  kann sofort in Office-VBA eingesetzt werden  ist oft in Messumgebungen von Drittherstellern anwendbar  für Rapid Application Development geeignet Nachteile:  Entwicklungsumgebung nicht mehr (bzw. kaum noch) erhältlich  nicht portabel, also nur für Windows geeignet

3

Was braucht man dafür?

(C)2009, Kiermaier

Für einfache kleine, schnelle Skripte gar nichts! Notepad (Editor) öffnen und schreiben: antwort = Inputbox("Wie heisst du?", "Aller Anfang..") MsgBox "Hallo, " + antwort, , "Begrüssung" Speichern unter VBTest.vbs (Dateierweiterung ist wichtig!) Danach einfach mit Doppelklick starten!

Versuchen Sie in einer neuen Textdatei VBTest2.vbs einmal folgendes: Set oexcel = CreateObject("excel.application") oexcel.visible = true oexcel.Workbooks.add 5

Was braucht man dafür?

(C)2009, Kiermaier

Im Microsoft-Office ebenfalls nichts! Starten Sie zum Beispiel Excel und klicken im Menü Extras-Makros auf Visual Basic-Editor oder drücken Sie ALT-F11. Anschließend drücken Sie F7, um ein Codefenster zu öffnen:

Wenn Sie nach dem Abschreiben F5 drücken (Ausführen), werden Sie sehen, dass in der ersten Zeile drei Felder grün sind und Einträge enthalten. 6

Objektorientiert – Was ist das? 

Windows verwaltet etliche reale Objekte:   



(C)2009, Kiermaier

Drucker (engl. Printer), Bildschirm (engl. Screen), Benutzer (engl. User).

aber auch virtuelle Objekte, die man nicht in die Hand nehmen kann:     

OK-Schaltflächen (engl. Buttons) Bildlaufleisten (engl. Scrollbars) Beschrifter (engl. Labels) Fenster (engl. Forms bzw. Formulars genannt), in denen andere Objekte eingebettet werden. usw.

Diese Objekte haben alle eindeutige Namen. Meistens können Sie diesen Namen frei selbst bestimmen. 7

Objektorientiert – Was ist das?

(C)2009, Kiermaier

In Excel drücken Sie ALT-F11, um in die VB-Entwicklungsumgebung zu kommen. Klicken Sie dann in der Symbolleiste auf das zweite Symbol: Userform einfügen. Damit haben Sie Ihr erstes Objekt erzeugt: ein Fenster!

Der Name dieses Objekts ist momentan Userform1. 8

Objektorientiert – Was ist das?

(C)2009, Kiermaier

Fügen Sie ein weiteres Objekt hinzu, in dem Sie aus der Werkzeugsammlung eine Befehlsschaltfläche auswählen. Ziehen Sie dann in der Userform ein Rechteck auf.

Das neue Objekt hat weiße Zugpunkte. Damit können Sie die Größe nachträglich noch ändern. Wenn Sie in das Objekt klicken, können Sie es auch verschieben. Aber es ist in die Userform eingebettet! 9

Objektorientiert – Was ist das?

(C)2009, Kiermaier

Wir haben nun zwei Objekte – aber was fangen wir damit an? Zunächst ändern wir die Eigenschaften des Schaltflächen-Objekts:

Name ist frei wählbar unterstrichener Buchstabe (für Tastenkombination ALT-E) Farbe der Schaltfläche Beschrifter – das, was draufsteht mit Eingabetaste bedienbar Schriftart Schriftfarbe

So werden Eigenschaften für Objekte vor-eingestellt. Es ist aber auch möglich, sie nachträglich im Programm zu ändern oder abzufragen!

10

Objektorientiert – Was ist das?

(C)2009, Kiermaier

Das Schaltflächen-Objekt sieht jetzt anders aus – aber was fangen wir damit an? Wenn man F5 drückt oder auf den Play-Knopf in der Symbolleiste klickt, wird das "Programm" gestartet und unser Fenster mit der Schaltfläche angezeigt. Klicken Sie auf die Schaltfläche!

Es passiert gar nichts! - Warum?

Frage: a) Was soll denn passieren? b) Wann soll es denn passieren? (Was ist der Auslöser?) Antwort a): Das Fenster schließen (beenden) -> das muss programmiert werden -> Codewort End Bleibt die Frage wohin? Ins Codefenster? – Probieren Sie es (F7 drücken)! 11

Vergleich der Programmiersprachen

(C)2009, Kiermaier

In einfachen Skriptsprachen schreibt man den Code einfach Zeile für Zeile in eine Textdatei: Perl:

VB-Script:

for ($i=1;$i Interrupt von der Maus -> Click-Ereignis Mausbewegung -> Interrupts von der Maus -> MouseMove-Ereignis Tastendruck -> Interrupt von der Tastatur -> Keypress-Ereignis Jedes Ereignis (Interrupt) muss eine eigene Behandlungsprozedur haben! Ausführbarer Code steht immer innerhalb einer Prozedur! Sub Objektname_Ereignis() Mach-was-Programmcode End Sub Wenn ein Ereignis keine Prozedur bzw. keinen Code vorfindet, passiert eben auch nichts! Das Ereignis ist dann wirkungslos!

13

Ereignishandler - Ereignisprozeduren

(C)2009, Kiermaier

In den Entwicklungsumgebungen wird automatisch eine Ereignisprozedur vorgeschlagen, wenn man das Objekt doppelt anklickt. Für unsere Schaltfläche ist das ein Click-Ereignis: Das Objekt heißt bn_ende. Das auslösende Ereignis ist ein Click. Deshalb heißt die Prozedur bn_ende_click. Wir schreiben als Code nur End hinein. Die Prozedur endet immer mit End Sub. Natürlich gibt es auch andere Ereignisse für dieses Objekt: man kann sie rechts in der Auswahlliste bestimmen. Nun hat unsere Befehlsschaltfläche eine Ereignisprozedur und kann deshalb reagieren! Starten Sie das "Programm" nochmal mit F5 und klicken Sie dann auf die Schaltfläche! Das Fenster verschwindet daraufhin – Programm beendet! 14

Methoden – interne Prozeduren

(C)2009, Kiermaier

Objekte haben Eigenschaften, die man lesen und ändern kann. Objekte regieren nur auf Ereignisse durch das Ausführen der jeweiligen Ereignisprozedur. Jedes Objekt hat bestimmte Fähigkeiten, kann also etwas anderes:    

Unsere Schaltfläche ist relativ dumm, kann also nichts (außer klicken). Ein Drucker (Printer) kann drucken (print) oder Linien (line) bzw. Kreise (circle) zeichnen. Eine Bildbox (picturebox) kann ein Bild laden und anzeigen (loadpicture). Ein Fenster (Form) kann alle oben genannten Dinge und sichtbar (show) bzw. unsichtbar (hide) werden.

Diese Fähigkeiten eines Objekts nennt man Methoden und sind nichts anderes als interne Prozeduren des Herstellers. Erst mit diesen Methoden kann man ein Programm schreiben!

15

Methoden – interne Prozeduren

(C)2009, Kiermaier

Fügen Sie in Excel unserer Userform1 eine weitere Schaltfläche hinzu.

mit folgenden Eigenschaften:

Dann Doppelklicken Sie auf die neue Schaltfläche, um eine Ereignisprozedur dafür zu erzeugen: Objekt: Worksheet(1) d.h. Tabelle1 Methode: PrintOut

In der Ereignisprozedur bn_druck_click soll das Objekt Worksheets(1) die Methode PrintOut benutzen, um den Inhalt der Tabelle1 auszugeben. 16

(C)2009, Kiermaier

Überblick: Objektorientierte Programmierung In VisualBasic werden reale bzw. virtuelle Objekte benutzt. Beispielobjekt: Printer Man kann deren Eigenschaften (Aussehen/Verhalten) ändern bzw. lesen: Printer.FontName = "Arial" Printer.FontSize = 48 Man kann deren Methoden (Fähigkeiten) nutzen, um einen gewünschten Vorgang abzuarbeiten: Printer.Print "Hallo Welt" Printer.EndDoc Aber all das funktioniert nur in einer auslösenden Ereignisprozedur: Private Sub bn_druck_Click() Printer.FontName = "Arial" Printer.FontSize = 48 Printer.Print "Hallo Welt" Printer.EndDoc

End Sub

17

View more...

Comments

Copyright � 2017 SILO Inc.