Visual Basic 6: Hallo Welt Beispiel

Aus Wikibooks

Erste Schritte[Bearbeiten]

Starten Sie die VB-IDE über das Startmenü von Windows. Je nach Version verbirgt sich der Eintrag hinter einem Namen wie Visual Basic, Visual Studio oder ähnlichem.

VB bietet Ihnen nun eine Auswahl an Projekten, die je nach Version unterschiedlich groß ausfällt. Sie wählen hier "Standard-EXE", was zu einem ganz normalen Programm führt. Zu ActiveX-EXE, ActiveX-DLL usw. werde ich an einer späteren Stelle kommen, Dinge wie IIS-Anwendungen etc. sind nur für die wenigsten Leute interessant und gehören in ein eigenes Buch.

Ein (noch) leeres Projekt. VB legt automatisch ein Formular an

Nachdem Sie das leere Projekt ausgewählt haben, sehen Sie in VB ein leeres Fenster mit vielen Punkten, die eine Art Raster darstellen. An diesem Gitter werden alle Steuerelemente (Schaltfläche, die Sie anklicken oder Felder, in denen Sie Text eingeben können) ausgerichtet. So ist gewährleistet, dass die Elemente nicht schief gesetzt werden, sondern an einer Linie ausgerichtet sind.

Tipp: Unter Extras, Optionen, Allgemein können Sie unter Rastereinheiten die beiden Werte von 120 auf 60 verringern - in der Praxis ist 120 Twips zu weit auseinander, 60 Twips ist ein guter Wert, mit dem Sie auch keine Probleme kriegen, wenn Sie Fremdprojekte bearbeiten.

Button
Button
Wir zeichnen unseren ersten Button, im Moment noch ohne Funktion

Beginnen wir mit unserem ersten verständlicherweise noch sehr einfachen Programm. Sie klicken in der Werkzeugsammlung (wenn die Werkzeugsammlung nicht sichtbar ist, aktivieren Sie diese über Ansicht, Werkzeugsammlung) und klicken einmal auf den Commandbutton. Das ist eine Schaltfläche. Sie erkennen den Button an seiner typischen rechteckigen Form, der in der Werkzeugleiste fast so aussieht wie eine Schaltfläche, die Sie von anderen Programmen her kennen.

Wählen Sie also den Button aus, und ziehen Sie den Button auf dem Formular auf. Dies geschieht ähnlich einem Rechteck, welches Sie in MSPaint aufziehen, oder einem Textfeld in Microsoft Word. Sobald Sie die Maustaste wieder loslassen, erscheint der soeben erstellte Button. An dieser Stelle sehen Sie einen großen Vorteil von VB gegenüber Sprachen wie C++ - sie können dank der VB-IDE die gesamte Oberfläche per Maus zeichnen (Bedingung: Die Oberfläche darf nicht zu komplex sein, das Formular darf nicht in der Größe geändert werden...) und sehen bereits nach wenigen Minuten eine fast fertige Oberfläche, während C++-Programmierer erst mal ein paar Stunden Pixelwerte eintippen, um erst dann die ersten Ergebnisse ihrer Arbeit bewundern können (wobei es für C++ natürlich auch Möglichkeiten gibt, die Oberflächen bis zu einem gewissen Grad ohne Codefuzzelei zu erstellen).

Drücken Sie nun einmal die Funktionstaste F5. Nun startet die VB-IDE ihr Programm. Sie haben nun ein vollwertiges Windows-Fenster vor sich das den Fenstertitel "Form1" trägt (oben im blauen Balken), mit einem Button mittendrin (oder am Rand, je nach dem, wo Sie diesen aufgezogen haben) mit der Aufschrift "Command1". Bis jetzt hat dieser Button noch keine Funktion - das werden wir jetzt aber ändern.

Schließen Sie das Programmfenster über die Schließen-Schaltfläche (das X oben rechts neben "Form1"). Sie haben nun wieder die VB-IDE vor sich. Wir werden nun beginnen, unser Fenster ein bisschen schöner (oder zumindest auffälliger) zu gestalten. Sehen Sie sich kurz in VB um. Vermutlich werden Sie auch irgendwo ein Eigenschaftsfenster sehen. Dessen Fenstertitel sollte "Eigenschaften - Form1" lauten, wenn nicht, klicken Sie bitte einmal neben dem von Ihnen gezeichneten Button auf Ihr ansonsten leeres Formular.

Sehen Sie sich das Eigenschaftsfenster genauer an. Suchen Sie sich den Eintrag Caption und klicken ihn an. Überschreiben sie das dort stehende "Form1" indem Sie nun "Hallo Welt" eintippen. Während Sie noch schreiben, verändert sich bereits der Text in der Titelleiste Ihres Formulares. Anschließend wählen Sie oberhalb von Caption noch den Wert BackColor aus. Hier erscheint rechts ein kleines nach unten zeigendes Dreieck in einem kleinen Button. Klicken Sie diese Schaltfläche an. Sie sollten nun eine Liste sehen, in der viele gräuliche - oder zumindest in einem gleichbleibenden Ton - Farben untereinander aufgelistet werden. Dies sind die in Windows eingestellten Farben. Klicken Sie oberhalb der Liste auf den Karteikartenreiter mit der Aufschrift Palette und suchen Sie sich einen schönen Farbton aus. Nun sollten Sie ihr Formular in dieser Farbe erstrahlen sehen...

Tipp: Wählen Sie aus dieser Palette nur in Ausnahmefällen eine Farbe aus. VB verwendet normalerweise die in Windows eingestellten Standardfarben. Nutzer, die beispielsweise Farbenblind sind, oder schlecht sehen, stellen sich höhere Kontraste ein, oder wählen andere, besser erkennbare Farben, die vielleicht nicht Ihrem Geschmack entsprechen. Standardanwendungen (Explorer, Textverarbeitung, Browser, Taschenrechner...) sollten sich wenn möglich an den Windowsfarben orientieren. Eine Ausnahme sind beispielsweise MP3-Player - hier gehört es fast schon zum guten Ton, eben nicht die Windowsfarben zu verwenden, sondern eine eigene, moderne Oberfläche zu gestalten.

Nun könnten Sie Ihr Programm wieder mittels drücken der Funktionstaste F5 testen - allerdings wird es sich nicht anders verhalten wie vorher. Da nach wie vor nichts passiert, wenn Sie auf den Button klicken, sollten wir jetzt mal mit der eigentlichen Programmierung anfangen.

Schließen Sie zunächst das Programmfenster über die Schließen-Schaltfläche (das X oben rechts neben "Hallo Welt"). Machen Sie einen Doppelklick auf den Button ("Command1"). Es sollte sich ein weiteres Fenster öffnen, in dem bereits zwei oder drei Zeilen Code stehen:

Private Sub Command1_Click()

End Sub

Dies ist unser erstes Ereignis.

Ereignisse[Bearbeiten]

Was ist ein Ereignis überhaupt?

Um diese Frage zu beantworten, machen wir einen kleinen Ausflug in die Geschichte und dem Aufbau von DOS und Windows (natürlich auch übertragbar auf Linux etc.)

Früher, als ein Betriebssystem für den User aus nicht mehr als einem schwarzen Bildschirm mit ein paar weißen Zeichen darauf bestand, war noch alles in Ordnung. Es konnte nur ein einziges Programm (neben dem Betriebssystem) zur gleichen Zeit ausgeführt werden, hatte den alleinigen Zugriff die Tastatur, und musste alles selbst zeichnen. Ein simpler Texteditor zeichnete also eine Menüleiste, eine Scrollbar und den Text, und wartete auf eine Eingabe des Nutzers. Entweder er drückte die ALT-Taste, dann wählte der nachfolgende Tastendruck den Menüeintrag aus, wenn nicht, dann wurde der Buchstabe eben an den Text angehängt.

Nun kam mit der Zeit allerdings Windows, und damit zogen auch Fenster in das Microsoft-Land ein... Es konnten plötzlich mehrere Programme gleichzeitig ausgeführt werden (allerdings muss man dazu sagen, dass Windows 1/2/3.1/3.11/95/98/ME diese Fähigkeit nur simulierten (stark vereinfacht gesagt sind diese nur eine grafische Oberfläche für DOS), daher rühren auch ein Großteil der Windowsabstürze. Der Nutzer hatte plötzlich eine Maus zur Verfügung. Windows basierte auf Fenstern, auch Controls wie die Schaltfläche sind Fenster. Die Frage war nun: Wer bekommt den Tastendruck? Wer bekommt die Mausbewegung? Und wie teilt man das dem Programm mit, wenn es nicht mehr alleine ist und warten kann? Wie teilt man einem Programm mit, wenn das Programm deaktiviert wird?

An dieser Stelle greifen nun die Ereignisse. Ein Programm hat - sofern es kein simples Tool für die Kommandozeile ist - Funktionen. Das Programm teilt nun Windows mit, dass es ein Fenster aufmachen will, wie das Fenster aussehen soll, und vor allem: Welche Funktion ist für Mausbewegungen und sonstigen Ereignissen auf diesem Fenster zuständig? Klickt der Nutzer nun auf das Fenster, ruft Windows diese Funktion auf, übergibt dieser Funktion das hWnd/Handle (eine eindeutige Nummer, die das Fenster zweifelsfrei identifiziert), die Art der Nachricht (Beispiel: WM_RBUTTONDOWN), und sagt evtl. noch was dazu (Mausposition, Maustaste...). Für VB-Programmierer ist der interne Aufbau von Windows vorerst allerdings nicht interessant - das Zeugs wird alles von VB übernommen, ihr Programm hat dann nur noch eine Funktion namens Command1_Click. Und da steht Ihr Code drin - mehr nicht.

Erste Programmzeile[Bearbeiten]

Erster Versuch, ein simples "Hallo Welt" auszugeben

Tippen Sie nun innerhalb der beiden Zeilen, die ich vorhin bereits erwähnte Ihren ersten Code ein:

Private Sub Command1_Click()
msgbox Hallo Welt
End Sub

Drücken Sie anschließend die Eingabetaste. Nun sollte sich VB bereits beschweren - eine nützliche Sache, um bei manchen Tippfehlern sofort nach der Eingabe aufmerksam gemacht zu werden.

Aber was will uns VB genau sagen? VB kann mit Hallo Welt nicht viel anfangen. VB geht davon aus, dass msgbox eine Funktion ist (ist es auch) und Hallo sowie Welt zwei Variablen. Nun bekommt VB also zwei Variablen, die einfach so dastehen - und weiß nicht, was es damit anfangen soll. Multiplizieren? Addieren? Wahlmöglichkeiten hätte VB genug, aber ein Computer will halt das machen, was man ihm sagt ;-) Wir müssen VB klar machen, dass wir eigentlich den Text "Hallo Welt" ausgeben wollen. Dies geschieht durch Anführungszeichen:

Private Sub Command1_Click()
MsgBox "Hallo Welt"
End Sub

Nun ist VB zufrieden, und tauscht msgbox sogar selbstständig in MsgBox aus - die offizielle Schreibweise der Funktion. Wenn Sie das Programm nun mittels F5 ausführen und auf den Button klicken, werden Sie die ersten Erfolge Ihrer Arbeit sehen...

Variablen[Bearbeiten]

Thema ausgelagert nach -> Variablen