Visual Basic Vortrag in DVG 3 Hans Zais Matr. Nr. 680200 DVG3 - 16VisualBasic 1 Kapitel 01 Einführung Visual Basic ist eine Windows-Programmiersprache von Microsoft entwickelt visuelle Entwicklungsumgebung ist objektorientierter als eine rein prozedurale Sprache (C, Pascal) gegenüber einer echt objektorientierten Sprache (C++, Java) fehlen aber einige Sprachelemente (Vererbung von Eigenschaften) mit jeder neuen Version kommen aber ein paar objektorientierte Merkmale hinzu. DVG3 - 16VisualBasic 2 Kapitel 02 VB - Projekte VB kann zur Programmierung unterschiedlicher Programmarten verwendet werden: Standard-EXE ActiveX-EXE ActiveX-DLL ActiveX-Steuerelement Add-In ActiveX-Dokument-DLL ActiveX-Document-EXE DVG3 - 16VisualBasic 3 Kapitel 02 VB - Projekte Standard-EXE: EXE - executable ( = ausführbar) herkömmliche Visual Basic Anwendung fast alle Software-Anwendungen entsprechen einer Standard-EXE eigenständige Anwendung keine Verbindung zu anderen Anwendungen ActiveX-Steuerelemente zum Erstellen eigener Steuerelemente DVG3 - 16VisualBasic 4 Kapitel 02 VB - Projekte ActiveX-EXE Software-Anwendungen, die von anderen Programmen via OLE oder COM über eine objektorientierte Programmschnittstelle genutzt werden können. sind als eigenständige Programme lauffähig ActiveX-DLL DLL - Dynamic Link Library stellen nur Funktionen zur Verfügung, die von anderen Programmen genutzt werden können fast alle Windows-Funktionen sind in DLLs hinterlegt DVG3 - 16VisualBasic 5 Kapitel 02 VB - Projekte ActiveX-Dokument-DLL können im Internet-Browser als Web Seite dargestellt werden Komponente oder Funktionsbibliothek einer Anwendung keine eigenständige Anwendung Word 97 enthält zum Beispiel diese Funktionalität ActiveX-Dokument-EXE läßt sich als Webseite darstellen ist eigenständige Anwendung DVG3 - 16VisualBasic 6 Kapitel 03 VB - Entwicklungsumgebung Die Toolbox stellt alle verfügbaren Steuerelemente dar Das Formfenster bildet die Grundlage der Benutzeroberfläche bildet den graphischen Hintergrund des Programms DVG3 - 16VisualBasic 7 Kapitel 03 VB - Entwicklungsumgebung Das Projektfenster listet alle Formen, Module und Klassen eines Projektes auf jede Form, jedes Modul und jede Klasse wird in einer separaten Datei gespeichert Das Codefenster dient der Anzeige und Erfassung des Programmcodes Das Eigenschaftenfenster zur Anzeige und Veränderung von Steuerelementen DVG3 - 16VisualBasic 8 Kapitel 04 Programmierung - Datentypen Datentypen Byte: ganze Zahl zwischen 0 und 255; Speicherplatz: 1 Byte Integer: ganze Zahl zwischen -32 768 und +32 767; Speicherplatz: 2 Byte Long: ganze Zahl zwischen -2 147 483 648 und +2 147 483 647 Speicherplatz: 4 Byte Single: Fließkommazahl mit 8 Stellen Genauigkeit; Speicherplatz: 4 Byte Double: Fließkommazahl mit 16 Stellen Genauigkeit; Speicherplatz: 8 Byte Currency: Festkommazahl mit 15 Stellen vor und 4 Stellen nach dem Komma; Speicherplatz: 8 Byte DVG3 - 16VisualBasic 9 Kapitel 04 Programmierung - Datentypen Datentypen String: Zeichenketten, also alphanumerische Zeichen und Sonderzeichen; können beliebig lang sein Object: speichert einen Verweis auf ein Objekt; Speicherplatz: 4 Byte Variant: Default-Variablentyp, d.h. falls einer Variable kein Datentyp zugewiesen wird, wird ihr der Typ Variant zugewiesen. Nachteile: großer Speicherplatz (mindestens 16 Byte, bei Strings 22 Byte + 2 Byte pro Zeichen), langsame Bearbeitungsgeschwindugkeit DVG3 - 16VisualBasic 10 Kapitel 04 Programmierung - Datentypen Date: Datum und Uhrzeit, wobei der Wertebereich beim Datum zwischen dem 01.01.100 und dem 31.12.9999 liegt, der Bereich der Zeit liegt zwischen 0 und 23.59.59; Speicherplatz: 8 Byte Eigene Datentypen benutzerdefinierte Variabletypen: Dieser Variablentyp ist kein echter Datentyp, sondern die Zusammensetzung mehrerer Variablen eines Typs: Beispiel: Variablentyp TFHStudent Type TFHStudent Dim name As String Dim vorname, matrNr As String End Type Zugriff: TFHStudent.name = "Bolle" DVG3 - 16VisualBasic 11 Kapitel 04 Programmierung - Datentypen Vor jeder Variablendeklaration muss das Schlüsselwort Dim stehen Variablennamen müssen mit einem Buchstaben beginnen, dürfen keine Sonderzeichen enthalten und maximal 255 Zeichen lang sein. Groß- und Kleinschreibung werden in VB grundsätzlich nicht unterschieden. DVG3 - 16VisualBasic 12 Kapitel 04 Programmierung - Felder Statische Felder bestehen aus Variablen gleichen Typs und einer festen Länge Beispiele: Dim feld(20) As Integer liefert ein Feld von Integers mit der Länge 21 mit den Feldelementem feld(0), feld(1), ..., feld(20) Dim feld(-5 To 7) As Integer liefert ein Feld mit den 13 Feldelementen feld(-5), feld(-4),... , feld(7) DVG3 - 16VisualBasic 13 Kapitel 04 Programmierung - Felder Dynamische Felder besteht aus Variablen gleichen Typs, deren Länge dynamisch im Programmablauf bestimmt und verändert werden können. Beispiel: Dim feld() As Integer liefert ein Feld von Integers mit unbestimmter Länge. Die Größe des Feldes kann im Programm dann durch ReDim feld(N) auf N+1 verändert werden. DVG3 - 16VisualBasic 14 Kapitel 04 Programmierung - Konstanten Konstanten Beispiel: Const pi = 3.14 Gültigkeitsbereich von Variablen und Konstanten: Unterscheidung in globale und lokale globale Variablen werden mit dem Schlüsselwort Global initiiert Globale Variablen sind innerhalb des gesamten Programms gültig, lokale nur in der Funktion in der sie definiert sind. DVG3 - 16VisualBasic 15 Kapitel 04 Programmierung - Prozeduren Funktionen und Prozeduren ohne Rückgabewert: Definition Sub name_der_funktion() ... End Sub DVG3 - 16VisualBasic 16 Kapitel 04 Programmierung - Prozeduren mit Rückgabewert: Definition Function name_der_funktion(x As Integer) As Double ... End Function Der Rückgabewert muß innerhalb der Funktion durch eine Zuweisung dem Namen der Funktion zugewiesen werden an die Funktion übergebener Parameter: Integer x Rückgabewert: name_der_funktion vom Typ Double DVG3 - 16VisualBasic 17 Kapitel 04 Programmierung - Prozeduren Prozedurnamen dürfen außer dem Unterstrich keine Sonderzeichen enthalten Aufruf von Funktionen: name_der_funktion Para1,...,ParaN Die Datentypen von Para1,...,ParaN müssen identisch mit den Paramertypen der aufgerufenen Funktion sein DVG3 - 16VisualBasic 18 Kapitel 04 Programmierung - Prozeduren Aufruf von Funktionen: Es gibt zwei Arten, Funktionen mit Parametern aufzurufen: call by value: Wird für einen Parameter in einer Funktion die Übergabeart call by value gewählt, dann wird beim Prozeduraufruf der Wert des Parameters übergeben und nicht dessen Adresse. Wird der Parameter in der aufgerufenen Prozedur geändert, so hat dies keine Auswirkung auf den übergebenen Parameter. DVG3 - 16VisualBasic 19 Kapitel 04 Programmierung - Prozeduren Beispiel: call by value Sub eins(ByVal a) a=a+10 End Sub Sub zwei() b=10 eins b c= b End Sub Der Parameter c hat hier den Wert 10. DVG3 - 16VisualBasic 20 Kapitel 04 Programmierung - Prozeduren call by reference: Wird für einen Parameter die Übergabeart call by reference gewählt, dann wird beim Prozeduraufruf die Adresse des Parameters übergeben. Wird der Parameter also in der aufgerufenen Prozedur geändert, hat das Auswirkungen auf den Wert des Parameters in der aufrufenden Prozedur. Es ist nicht möglich, beim Aufruf als Parameter direkt eine Zahl oder Zeichenkette zu verwenden, da diese nicht von der Prozedur verändert werden kann. DVG3 - 16VisualBasic 21 Kapitel 04 Programmierung - Prozeduren Beispiel: call by reference Sub eins(a) Dim a=a+10 End Sub Sub zwei() Dim b=10 eins b Dim c= b End Sub Der Parameter c hat hier den Wert 20. DVG3 - 16VisualBasic 22 Kapitel 04 Programmierung - Prozeduren Es gibt vordefinierte Prozeduren, wie MsgBox “Text “ zeigt eine Textbox auf dem Bildschirm an InputBox funktioniert wie MsgBox nur wird hierbei die Eingabe einer Zeichenkette ermöglicht. DVG3 - 16VisualBasic 23 Kapitel 04 Programmierung - Verzweigungen If - Then -Else If bedingung Then ... ElseIf bedingung1 Then ... ElseIf bedingungN Then ... Else ... End If Dabei werden die ElseIf - Blöcke und die Else - Blöcke nur ausgeführt, wenn keine der darüber liegenden Bedingungen erfüllt ist. DVG3 - 16VisualBasic 24 Kapitel 04 Programmierung - Verzweigungen Select - Case Select Case ausdruck Case möglichkeit1 ... Case möglichkeitN ... Case Else ... End Select DVG3 - 16VisualBasic 25 Kapitel 04 Programmierung - Schleifen For-Next-Schleifen var1, var2 For var1= start To ende [Step schrittweite] ... If ... Then Exit For ... Next var2 In jedem Durchgang wird die Variable um die Schrittweite erhöht Ist keine Schrittweite angegeben, wird die Variable jeweils um 1 erhöht. Als Schleifenvariable wird nach Durchlauf einer Variablen automatisch die nächste eingesetzt. DVG3 - 16VisualBasic 26 Kapitel 04 Programmierung - Schleifen While - Wend - Schleife While bedingung ... Wend Wird so lange ausgeführt, bis die Bedingung erfüllt ist DVG3 - 16VisualBasic 27 Kapitel 04 Programmierung - Schleifen Do - Loop - Schleifen Do [ While bedingung oder Until bedingung] ... If ... Then Exit Do ... Loop oder Do ... If ... Then Exit Do ... Loop [ While bedingung oder Until bedingung] Steht in einer Do - Loop - Schleife keine While- oder Untilbedingung, dann ist sie eine Endlosschleife. DVG3 - 16VisualBasic 28 Kapitel 04 Programmierung - Objekte Als Objekte gelten Formulare, Steuerelemente und einige Windows-Elemente ( Drucker, Zwischenablage, ...) Objekte enthalten Eigenschaften und Methoden Eigenschaften bestimmen die Merkmale eines Objekts ( Farbe eines Formulars, Größe eines Buttons, ...). Methoden führen Anweisungen aus. Aufruf von Eigenschaften und Methoden: objekt.eigenschaft objekt.methode DVG3 - 16VisualBasic 29 Kapitel 04 Programmierung - Objekte Greift man nacheinander auf unterschiedliche Eigenschaften oder Methoden eines Objekts zu, kann man dies mit With vereinfachen: With objekt .methode1 ... .methodeN .eigenschaft1 ... .eigenschaftM End With DVG3 - 16VisualBasic 30 Kapitel 06 Internet Bei der ersten Version von HTML konnten nur statische Daten angezeigt werden. Es entstand der Wunsch, dynamisch auf Eingeben des Anwenders reagieren zu können. Beispiel: Der Anwender gibt einen Suchbegriff ein. Server leitet mittels CGI ( Common Gateway Interface) diese Information weiter an ein Programm zur Auswertung Dieses Programm liefert eine neue HTML-Seite, die als Antwort an den Client übertragen wird. DVG3 - 16VisualBasic 31 Kapitel 06 Internet Dynamischer Datenaustausch ist Grundlage aller Geschäftstransaktionen und jedes Datenbankzugriffs über das Internet. Darum wurde HTML mit Formular-Merkmalen erweitert, die es ermöglichen, einfache Dialoge zu gestalten und Informationen zurück an den Internet-Server zu senden. Dort werden diese Informationen ausgewertet und auf einer neuen HTML-Seite zurück an den Server übertragen. DVG3 - 16VisualBasic 32 Kapitel 06 Internet Nachteile: Datenaustausch über das Internet ist langsam. Oft könnten Daten gleich beim Anwender ausgewertet werden und stünden damit gleich zur Verfügung. Der Server kann nicht unbegrenzt viele CGI-Programme gleichzeitig starten. Konsequenz: noch längere Wartezeiten. DVG3 - 16VisualBasic 33 Kapitel 06 Internet Lösungsansätze für diese Probleme: Verlagerung von möglichst viel Funktionen zum Client zu verlagern, d. h. in Programme, die lokal am Rechner des Anwenders ausgeführt werden ( Java, JavaScript, VBScript, DHTML-Anwendungen,... ) Ersetzen von CGI-Skripten durch effizientere Programme. Microsoft bietet dazu den Internet Information Server, das Internet Server Application Interface, und andere an. DVG3 - 16VisualBasic 34 Kapitel 06 Internet - VBScript Sehr starke Ähnlichkeit zu Visual Basic Einige Unterschiede zu VB: With-Kommando existiert nicht nur Variablentyp Variant VB-Script Programme sind spürbar langsamer als VB-Programme In den meisten öffentlich zugänglichen Internet-Dokumenten wird JavaScript benutzt, weil die Browser von Netscape nicht in der Lage sind, VBScript-Code auszuführen. DVG3 - 16VisualBasic 35 Kapitel 06 Internet - VBScript VBScript-Code muss zwischen <SCRIPT>-Tags eingeschlossen sein. Innerhalb einer HTML-Datei sind mehrere <SCRIPT>-Abschnitte zulässig. Variable innerhalb eines <SCRIPT>-Abschnitts sind nur dort bekannt, ein <SCRIPT>-Abschnitt wird wie ein eigenes Modul behandelt. DVG3 - 16VisualBasic 36 Kapitel 06 Internet - VBScript Beispiel: Hello World! <HTML> <HEAD> <TITLE> Hello World als VBScript </TITLE> </HEAD> <BODY> <H3> Hello World in VBScript </H3> <INPUT TYPE=“Button“ NAME=“MyButton“ VALUE=“Click Me“ > <SCRIPT LANGUAGE=“VBScript“> <!-Sub MyButton_OnClick() MsgBox “Hello World! “ EndSub --> </SCRIPT> </BODY> </HTML> DVG3 - 16VisualBasic 37