Spielend Visual Basic lernen - ReadingSample - Beck-Shop

Werbung
Galileo Computing
Spielend Visual Basic lernen
Für Programmieranfänger von 12 bis 99 Jahren
Bearbeitet von
André Willms
1. Auflage 2011. Taschenbuch. 396 S. Paperback
ISBN 978 3 8362 1828 3
Format (B x L): 17 x 17,2 cm
Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden >
Microsoft Programmierung
schnell und portofrei erhältlich bei
Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.
Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm
durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr
als 8 Millionen Produkte.
André Willms
Spielend Visual Basic lernen
oder wie die Bugs das Laufen lernen
Auf einen Blick
1
Erste Vorbereitungen ..........................................................
13
2
Anweisungen und Algorithmen ..........................................
37
3
Prozeduren und Module .....................................................
61
4
Verzweigungen und Wiederholungen ................................
77
5
Zeichnen .............................................................................
101
6
Variablen und Rechnen .......................................................
113
7
Prozeduren II und Funktionen ............................................
133
8
Verzweigungen II & Schleifen .............................................
149
9
Spielereien I ........................................................................
179
10
Arrays ..................................................................................
193
11
Zeichen und Zeichenketten ................................................
207
12
Strukturen ...........................................................................
223
13
Klassen ...............................................................................
231
14
Spielereien II .......................................................................
243
15
Windows-Anwendungen ....................................................
275
16
Extrem-Krabbeln für Fortgeschrittene ...............................
291
Inhalt
1
Erste Vorbereitungen ..................................................................
13
1.1
13
17
19
22
22
23
24
24
25
26
28
30
31
31
1.2
1.3
1.4
1.5
1.6
1.7
1.8
2
Visual Basic installieren ...........................................................
1.1.1
Der erste Start ...........................................................
1.1.2
Visual Basic registrieren .............................................
Einstellungen ..........................................................................
1.2.1
Einen Ordner vorbereiten ..........................................
1.2.2
Erweiterte Einstellungen aktivieren ............................
1.2.3
Programmcodedarstellung ändern .............................
1.2.4
Wir wollen es strikt ...................................................
1.2.5
Projekteinstellungen ..................................................
Ein Projekt erstellen ................................................................
Die Datei »Scara.dll« einbinden ..............................................
Ein Projekt schließen ..............................................................
Ein bestehendes Projekt öffnen ...............................................
1.6.1
Das Projekt über die Startseite öffnen .......................
1.6.2
Das Projekt über
»Zuletzt geöffnete Projekte« öffnen ...........................
1.6.3
Das Projekt über den Menüpunkt
»Projekt öffnen« aufrufen ..........................................
Wenn es nicht klappt ..............................................................
1.7.1
Der Projektmappen-Explorer ist weg .........................
1.7.2
Bei der Erstellung eines Projekts fehlt
die Auswahl des Speicherorts ....................................
Zusammenfassung ..................................................................
32
32
34
34
34
35
Anweisungen und Algorithmen ................................................
37
2.1
2.2
37
41
42
43
44
46
49
50
52
2.3
Der Algorithmus .....................................................................
Das erste Programm ...............................................................
2.2.1
Module .....................................................................
2.2.2
Die Hauptprozedur ....................................................
Scara lernt laufen ....................................................................
2.3.1
Das Programm starten ...............................................
2.3.2
Die Übung korrekt beenden ......................................
2.3.3
Dem Käfer Beine machen ..........................................
2.3.4
Vermeide den Abgrund .............................................
5
Inhalt
2.4
2.5
Fehler finden ..........................................................................
Textausgabe in Visual Basic ....................................................
2.5.1
Aufbau der Ausgabe ..................................................
2.5.2
Sprache und Bibliothek .............................................
2.5.3
Vereinfachungen .......................................................
2.5.4
Ausgabe in Kombination mit der »Scara.dll« ..............
Zusammenfassung ..................................................................
52
55
56
58
58
59
60
Prozeduren und Module .............................................................
61
3.1
3.2
3.3
3.4
3.5
Scara lernt die Drehung ..........................................................
Anweisungen gruppieren ........................................................
Namensregeln ........................................................................
Ein weiteres Anwendungsbeispiel ...........................................
Aufteilen in Module ...............................................................
3.5.1
Ein neues Modul hinzufügen .....................................
3.5.2
Ein vorhandenes Modul hinzufügen ..........................
Übungen ................................................................................
Zusammenfassung ..................................................................
62
63
66
67
69
69
72
74
75
Verzweigungen und Wiederholungen .....................................
77
4.1
4.2
4.3
4.4
4.5
Die Wenn-dann-Verzweigung ................................................
Vergleichsoperatoren .............................................................
Die Entweder-oder-Verzweigung ............................................
Übungen I ..............................................................................
Wiederholungen .....................................................................
4.5.1
Die einfachste Art der Wiederholung: »while«............
4.5.2
Auf immer und ewig: Endlosschleifen ........................
Kommentare ..........................................................................
4.6.1
Kommentieren von Anweisungen ..............................
4.6.2
Ganze Zeilen kommentieren ......................................
4.6.3
Kommentare zum Ausklammern von Anweisungen ....
Übungen II .............................................................................
Zusammenfassung ..................................................................
80
82
83
87
88
88
90
91
91
92
93
93
99
Zeichnen ........................................................................................
101
5.1
5.2
101
102
2.6
3
3.6
3.7
4
4.6
4.7
4.8
5
6
Das Zeichenbrett ....................................................................
Das Koordinatensystem ..........................................................
Inhalt
5.3
Die Zeichenfunktionen ...........................................................
5.3.1
Zeichnen eines Punktes .............................................
5.3.2
Zeichnen einer Linie ..................................................
5.3.3
Zeichnen einer Ellipse ................................................
5.3.4
Zeichnen eines Dreiecks ............................................
5.3.5
Zeichnen eines Rechtecks ..........................................
5.3.6
Zeichnen eines Vierecks ............................................
5.3.7
Zeichnen von Text .....................................................
5.3.8
Das Zeichenbrett löschen ..........................................
5.3.9
Die Liniendicke angeben ...........................................
Die Zeichenfarbe definieren ....................................................
5.4.1
Das Farbsystem RGB .................................................
5.4.2
Die Prozeduren zum Setzen der Farbe .......................
5.4.3
Die Funktionen zum Auslesen der Farbe ....................
Zusammenfassung ..................................................................
103
104
104
105
106
107
108
108
109
109
110
110
111
112
112
Variablen und Rechnen ...............................................................
113
6.1
6.2
6.3
Die Grundrechenarten ............................................................
Der Restwertoperator .............................................................
Variablen ................................................................................
6.3.1
Eine Variable definieren ............................................
6.3.2
Variablen im Einsatz ..................................................
6.3.3
Variablen für Zeichenketten ......................................
Die Eingabe ............................................................................
6.4.1
Programmaufbau .......................................................
6.4.2
Umwandeln in numerische Werte .............................
Zahlen mit Nachkommastellen ................................................
Ungültige Eingaben ................................................................
Für Fortgeschrittene ...............................................................
6.7.1
Zusammengesetzte Zuweisungsoperatoren ................
6.7.2
Formatierte Ausgabe .................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
114
115
115
118
120
121
121
121
122
125
126
127
127
128
130
132
Prozeduren II und Funktionen ..................................................
133
7.1
7.2
7.3
134
135
138
5.4
5.5
6
6.4
6.5
6.6
6.7
6.8
6.9
7
Lokale Variablen .....................................................................
Anweisungen flexibler gestalten mit Parametern .....................
Prozeduren mit Parametern ....................................................
7
Inhalt
7.4
7.5
7.6
7.7
8
Funktionen .............................................................................
Funktionen mit Parametern ....................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
140
142
143
147
Verzweigungen II & Schleifen ...................................................
149
8.1
Das Formulieren von »Und« und »Oder« .................................
8.1.1
Verschachtelte Verzweigungen ..................................
8.1.2
Logisches »Und« ........................................................
8.1.3
Logisches »Oder« ......................................................
8.1.4
Exklusives »Oder« ......................................................
Die logische Verneinung .........................................................
Fallunterscheidung .................................................................
Der Datentyp »Boolean« .........................................................
Erst machen, dann prüfen: »Do ... While« ...............................
Zählen mit Schleifen ...............................................................
Von vorn bis hinten: »For« ......................................................
Schleifen verschachteln ..........................................................
Ein paar Beispiele ...................................................................
8.9.1
Zeichnen einer Röhre ................................................
8.9.2
Ein Effekt mit Ellipsen ...............................................
8.9.3
Farben mischen .........................................................
Für Fortgeschrittene ...............................................................
8.10.1 Vereinfachung von Bedingungen ...............................
8.10.2 Vereinfachung von Verzweigungen ...........................
8.10.3 Kurzschlüsse bei den logischen Operatoren ...............
8.10.4 Schleifenabbruch .......................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
149
149
151
152
153
153
153
156
157
159
161
163
164
164
165
167
169
169
170
170
172
173
178
Spielereien I ..................................................................................
179
9.1
179
179
180
181
182
182
185
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
9
9.2
8
Ein Zahlenratespiel .................................................................
9.1.1
Zufallszahlen .............................................................
9.1.2
Die Spielschleife ........................................................
9.1.3
Spielerhilfen hinzufügen ............................................
Das Zwölferspiel .....................................................................
9.2.1
Die Darstellung des Spielbretts .................................
9.2.2
Der menschliche Spieler ............................................
Inhalt
9.2.3
Der Computerspieler .................................................
9.2.4
Die Spielschleife ........................................................
9.2.5
Ein unschlagbarer Computerspieler ............................
Übungen ................................................................................
185
186
188
190
10 Arrays .............................................................................................
193
9.3
10.1
10.2
10.3
Mehrere Werte speichern mit Arrays ......................................
Arbeiten mit Arrays ................................................................
Die Liste .................................................................................
10.3.1 Die Größe einer Liste .................................................
10.3.2 Elemente entfernen ...................................................
10.3.3 Listen als Parameter ..................................................
Listen und Arrays als Rückgabewert ........................................
Übungen ................................................................................
Zusammenfassung ..................................................................
193
196
199
201
201
201
202
203
206
11 Zeichen und Zeichenketten .......................................................
207
10.4
10.5
10.6
11.1
Ein Zeichen speichern .............................................................
11.1.1 Zeichen sind Werte, Werte sind Zeichen ...................
11.1.2 Die Zeichenart feststellen ..........................................
11.1.3 Groß- und Kleinbuchstaben .......................................
Speichern von Zeichenketten ..................................................
11.2.1 Mit Strings arbeiten ...................................................
11.2.2 Zeichenketten verändern ...........................................
Texte verschlüsseln .................................................................
11.3.1 Die Caesar-Verschlüsselung .......................................
11.3.2 Ein Zeichen verschlüsseln ..........................................
11.3.3 Ein Zeichen entschlüsseln ..........................................
11.3.4 Einen Text verschlüsseln ............................................
11.3.5 Einen Text entschlüsseln ............................................
11.3.6 Das Hauptprogramm .................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
207
207
208
210
210
210
212
214
214
215
216
217
218
218
219
221
12 Strukturen .....................................................................................
223
11.2
11.3
11.4
11.5
12.1
12.2
Definition einer Struktur .........................................................
Verwendung von Strukturen ...................................................
224
226
9
Inhalt
12.2.1 Strukturen und Arrays bzw. Listen .............................
12.2.2 Strukturen als Prozedur-/Funktionsparameter.............
Ein Beispiel .............................................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
226
227
228
229
230
13 Klassen ...........................................................................................
231
12.3
12.4
12.5
13.1
13.2
13.3
13.4
13.5
13.6
13.7
Definition einer Klasse ............................................................
Zugriffsrechte .........................................................................
Methoden ..............................................................................
Konstruktoren ........................................................................
Zugriffsmethoden ...................................................................
Übungen ................................................................................
Zusammenfassung ..................................................................
232
234
235
236
239
240
241
14 Spielereien II .................................................................................
243
14.1
14.2
14.3
10
Galgenmännchen ....................................................................
14.1.1 Das Grundgerüst der Klasse .......................................
14.1.2 Der Konstruktor ........................................................
14.1.3 Das Zeichnen des Spielfeldes .....................................
14.1.4 Das Prüfen eines Zeichens .........................................
14.1.5 Das Prüfen auf Spielende ..........................................
14.1.6 Die Spielschleife ........................................................
Mastermind ............................................................................
14.2.1 Der Farbcode ............................................................
14.2.2 Der Konstruktor mit Codeübergabe ...........................
14.2.3 Der parameterlose Konstruktor .................................
14.2.4 Die Darstellung des Codes ........................................
14.2.5 Die Codeauswertung .................................................
14.2.6 Lösung gefunden? .....................................................
14.2.7 Die Klasse »Mastermind« ..........................................
14.2.8 Der Konstruktor ........................................................
14.2.9 Die Darstellung .........................................................
14.2.10 Der Mensch spielt .....................................................
14.2.11 Der Computer rät ......................................................
Übungen ................................................................................
243
243
244
245
248
251
252
253
253
253
257
258
260
262
263
263
264
266
268
273
Inhalt
15 Windows-Anwendungen ...........................................................
15.1
15.2
275
Eine Windows Forms-Anwendung erstellen ............................
Eigenschaften visueller Elemente ändern .................................
15.2.1 Die Eigenschaft (Name) .............................................
15.2.2 Die Eigenschaften des Fensters ..................................
Interaktive Buttons erstellen ...................................................
15.3.1 Die Toolbox ..............................................................
15.3.2 Ereignisse ..................................................................
15.3.3 Die Messagebox ........................................................
Text einfügen mit Labels .........................................................
Textboxen für Eingaben erstellen ............................................
Ein Beispiel für eine Anwendung ............................................
275
277
278
279
280
281
283
285
286
287
288
16 Extrem-Krabbeln für Fortgeschrittene ....................................
291
15.3
15.4
15.5
15.6
16.1
16.2
A
Die Übungen ..........................................................................
Die Lösungen .........................................................................
291
299
Anhang ................................................................................ 323
A.1
A.2
Ältere Frameworks unterstützen .............................................
Starten ohne Debugging .........................................................
A.2.1 Starten ohne Debugging in der Symbolleiste .............
A.2.2 Starten ohne Debugging in der Menüleiste ................
Lösungen ................................................................................
A.3.1 Lösungen zu Kapitel 3 ...............................................
A.3.2 Lösungen zu Kapitel 4 ...............................................
A.3.3 Lösungen zu Kapitel 6 ...............................................
A.3.4 Lösungen zu Kapitel 7 ...............................................
A.3.5 Lösungen zu Kapitel 8 ...............................................
A.3.6 Lösungen zu Kapitel 9 ...............................................
A.3.7 Lösungen zu Kapitel 10 .............................................
A.3.8 Lösungen zu Kapitel 11 .............................................
A.3.9 Lösungen zu Kapitel 12 .............................................
A.3.10 Lösungen zu Kapitel 13 .............................................
A.3.11 Lösungen zu Kapitel 14 .............................................
Hinweise zu den Daten auf der DVD ......................................
323
325
325
328
328
328
332
342
345
353
363
368
376
382
385
388
392
Index ........................................................................................................
393
A.3
A.4
11
Dieses Kapitel behandelt das Zeichenbrett der Datei »Scara.dll«, damit
im weiteren Verlauf des Buches interessantere Ausgaben programmiert
werden können.
5
Zeichnen
Mit dem Käfer lassen sich sehr schön algorithmische Probleme nachbilden. Um
aber auch arithmetische Ergebnisse oder später Datenstrukturen möglichst einfach visualisieren zu können, habe ich der Scara.dll ein Zeichenbrett hinzugefügt.
Auf dieses Zeichenbrett kann mit einfachen Anweisungen gezeichnet werden.
Es wird im weiteren Verlauf des Buches öfter die Grundlage für unsere grafische
Ausgabe sein.
5.1
Das Zeichenbrett
Um ein Zeichenbrett zu erhalten, rufst du die Prozedur Zeichenbrett.Oeffnen
auf. In ihren runden Klammern gibst du die Breite und Höhe des gewünschten
Zeichenbretts in Pixeln an. Listing 5.1 zeigt die Anwendung.
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
End Sub
End Module
Listing 5.1 Das Erzeugen eines Zeichenbretts
Das obige Beispiel erzeugt ein Zeichenbrett von 600 Pixeln Breite und 400 Pixeln
Höhe. Wie du sicher weißt, sind Pixel Bildpunkte, aus denen alles zusammengesetzt ist, was du auf deinem Monitor siehst. Damit besitzt unser erzeugtes Zeichenbrett (das in Abbildung 5.1 zu sehen ist) 600 mal 400, also 240.000 Bildpunkte oder Pixel.
101
5
Zeichnen
Abbildung 5.1 Das erzeugte Zeichenbrett
Geschlossen wird das Zeichenbrett durch Schließen des Fensters oder durch Drücken von (Esc), wenn das Zeichenbrett aktiv ist.
5.2
Das Koordinatensystem
Vermutlich weißt du bereits, was ein Koordinatensystem ist. Wenn nicht, wird es
hier kurz erklärt. Ein Fenster besitzt zwei Achsen. Die X-Achse beginnt in der
oberen linken Ecke und erstreckt sich waagerecht bis zum rechten Rand des Fensters.
Die Y-Achse beginnt ebenfalls oben links, erstreckt sich aber senkrecht bis zum
unteren Ende des Fensters. Hier unterscheidet sich das Koordinatensystem leicht
von dem, was du wahrscheinlich aus dem Matheunterricht kennst. In der Mathematik wächst die Y-Achse nämlich nach oben, hier aber wächst sie nach unten.
Damit hat die obere linke Ecke (dort, wo sich die beiden Achsen treffen) den XWert 0 und den Y-Wert 0. Abbildung 5.2 zeigt unser Zeichenbrett mit eingezeichneten Achsen.Über diese beiden Achsen besitzt jedes Pixel eine eindeutige Position. Die Position wird dabei immer als Zahlenpaar in der Reihenfolge (x,y) angegeben.
102
Die Zeichenfunktionen
X
Y
Abbildung 5.2 Das Koordinatensystem eines Fensters
Mit den Ausmaßen unseres aktuellen Zeichenbretts (Breite von 600 Pixeln, Höhe
von 400 Pixeln) sitzt beispielsweise der Punkt in der Zeichenbrettmitte an Position (300,200), hat also einen X-Wert von 300 und einen Y-Wert von 200. Abbildung 5.3 stellt die Position grafisch dar.
X=300
Y=200
Abbildung 5.3 Die Position des Pixels in der Mitte
5.3
Die Zeichenfunktionen
Jetzt fehlen nur noch die Prozeduren, mit denen wir auf dem Zeichenbrett zeichnen können.
103
5.3
5
Zeichnen
5.3.1 Zeichnen eines Punktes
Mit der Prozedur ZeichnePunkt wird ein Punkt an die angegebene Position in der
aktuellen Zeichenfarbe gesetzt. Der allgemeine Aufbau ist:
Zeichenbrett.ZeichnePunkt(XPosition, YPosition)
Dabei müssen für XPosition und YPosition natürlich konkrete Werte angegeben
werden. Listing 5.2 zeigt als Beispiel das Zeichnen des Punktes in der Zeichenbrettmitte, wie oben besprochen.
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichnePunkt(300, 200)
End Sub
End Module
Listing 5.2 Das Zeichnen des Punktes in der Zeichenbrettmitte
5.3.2 Zeichnen einer Linie
Die Prozedur ZeichneLinie zeichnet eine Linie zwischen zwei Punkten in der
aktuellen Zeichenfarbe.
Zeichenbrett:ZeichneLinie(XStart, YStart, XEnde, YEnde)
Die Werte XStart und YStart entsprechen dabei den Koordinaten des Startpunktes und XEnde und YEnde den Koordinaten des Endpunktes.
Listing 5.3 bestellt schöne Grüße von Zorro (siehe Abbildung 5.4).
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichneLinie(50, 50, 350, 50)
Zeichenbrett.ZeichneLinie(350, 50, 50, 350)
Zeichenbrett.ZeichneLinie(50, 350, 350, 350)
End Sub
End Module
Listing 5.3 Das Zeichen des Zorro
104
Die Zeichenfunktionen
Abbildung 5.4 Das Zeichen des Zorro
5.3.3 Zeichnen einer Ellipse
Mit der Prozedur ZeichneEllipse lässt sich eine Ellipse zeichnen. Sie ist so aufgebaut:
Zeichenbrett.ZeichneEllipse(X, Y, Breite, Hoehe)
Die Angaben zum Zeichnen einer Ellipse beziehen sich eigentlich auf ein unsichtbares Rechteck, in das die Ellipse gezeichnet wird.
Abbildung 5.5 zeigt den Sachverhalt. Das eigentlich unsichtbare Rechteck ist
gestrichelt eingezeichnet. Die Koordinaten X und Y beziehen sich auf die Position
der oberen linken Ecke des Rechtecks. Die Werte Breite und Hoehe definieren
die Breite und Höhe des Rechtecks. Die tatsächlich gezeichnete Ellipse wird dann
so gezeichnet, dass sie das Rechteck an allen vier Seiten berührt.
X,Y
Breite
Höhe
Abbildung 5.5 Das Zeichnen einer Ellipse
105
5.3
5
Zeichnen
Zum Zeichnen einer ausgefüllten Ellipse gibt es noch die Prozedur ZeichneGefuellteEllipse, die dieselben Parameter besitzt wie ZeichneEllipse.
5.3.4 Zeichnen eines Dreiecks
Ein Dreieck kann mit der Prozedur ZeichneDreieck gezeichnet werden.
Zeichenbrett.ZeichneDreieck(X1, Y1, X2, Y2, X3, Y3)
Es sollte nicht überraschen, dass ein Dreieck drei Ecken besitzt. Die Positionen
dieser drei Ecken werden über die Punkte (X1,Y1), (X2,Y2) und (X3,Y3) definiert,
die in den runden Klammern der Prozedur – wie oben aufgeführt – angegeben
werden müssen. Die Reihenfolge der Punkte ist egal.
Das Programm in Listing 5.4 zeichnet eine Sanduhr, allerdings ohne Sand, wie in
Abbildung 5.6 zu sehen ist.
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichneDreieck(200, 100, 400, 100, 300, 200)
Zeichenbrett.ZeichneDreieck(300, 200, 200, 300, 400, 300)
End Sub
End Module
Listing 5.4 Das Zeichnen einer Sanduhr
Abbildung 5.6 Eine gezeichnete Sanduhr
106
Die Zeichenfunktionen
Ausgefüllte Dreiecke können mit der Prozedur ZeichneGefuelltesDreieck
gezeichnet werden. Ihre Parameter sind identisch mit ZeichneDreieck.
5.3.5 Zeichnen eines Rechtecks
Weil ein Rechteck problemlos selbst mit vier Linien gezeichnet werden kann,
existiert nur die Möglichkeit, ein ausgefülltes Rechteck zu zeichnen:
Zeichenbrett.ZeichneGefuelltesRechteck(X,Y,Breite,Hoehe)
Ich hatte in 5.3.3 über das Zeichnen einer Ellipse gesagt, dass ihre Ausmaße über
ein unsichtbares Rechteck definiert werden, für das die Position der oberen linken Ecke sowie dessen Breite und Höhe angegeben werden. Das Gleiche gilt für
das Zeichnen eines Rechtecks – nur dass jetzt das Rechteck glücklicherweise nicht
mehr unsichtbar ist.
Listing 5.5 erstellt eine Anordnung von drei Rechtecken, Abbildung 5.7 zeigt sie.
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichneGefuelltesRechteck(25, 25, 50, 50)
Zeichenbrett.ZeichneGefuelltesRechteck(75, 75, 100, 100)
Zeichenbrett.ZeichneGefuelltesRechteck(175, 175, 200, 200)
End Sub
End Module
Listing 5.5 Das Zeichnen von Rechtecken
Abbildung 5.7 Ein Rechteck-Ensemble
107
5.3
5
Zeichnen
5.3.6 Zeichnen eines Vierecks
Zum Zeichnen eines allgemeinen ausgefüllten Vierecks existiert die Prozedur
ZeichneGefuelltesViereck. Diese ist ähnlich aufgebaut wie ZeichneGefuelltesDreieck, nur dass sie vier Koordinatenpaare übergeben bekommt:
Zeichenbrett.ZeichneGefuelltesViereck(X1, Y1, X2, Y2,
X3, Y3, X4, Y4)
Aus Platzgründen habe ich die Prozedur in der Parameterliste umbrochen. Das
hat allein optische Gründe, beim Programmieren können alle Werte, durch Kommas getrennt, hintereinander geschrieben werden, genau wie bei den anderen
Prozeduren auch.
5.3.7 Zeichnen von Text
Du kannst auch Text auf das Zeichenbrett schreiben, und zwar mit der Prozedur
ZeichneText:
Zeichenbrett.ZeichneText(X, Y, Text, Groesse)
Dabei definieren X und Y wieder die Position des Textes, und zwar dessen obere
linke Ecke. Text steht für den auszugebenden Text. Wir haben in Abschnitt 2.5,
»Textausgabe in Visual Basic«, gelernt, dass konstante Zeichenketten in doppelten
Anführungsstrichen stehen müssen. Das Gleiche gilt hier. Groesse definiert die
Schriftgröße in Punkt, wie du es vielleicht von Textverarbeitungsprogrammen
her kennst.
Abbildung 5.8 Visual Basic in verschiedenen Größen
108
Die Zeichenfunktionen
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichneText(20, 20, "Visual Basic", 10)
Zeichenbrett.ZeichneText(30, 40, "Visual Basic", 14)
Zeichenbrett.ZeichneText(45, 60, "Visual Basic", 20)
Zeichenbrett.ZeichneText(70, 80, "Visual Basic", 55)
End Sub
End Module
Listing 5.6 Die Ausgabe von Text
5.3.8 Das Zeichenbrett löschen
Falls du während des Programmlaufs mal die Tafel putzen musst – in unserem Fall
das Zeichenbrett – gibt es die Prozedur PutzeZeichenbrett.
Zeichenbrett.PutzeZeichenbrett()
Damit werden alle Zeichnungen vom Zeichenbrett entfernt, und es wird mit der
aktuellen Zeichenfarbe gefüllt.
5.3.9 Die Liniendicke angeben
Falls du die Zeichenbeispiele in den vorigen Abschnitten mal ausprobiert hast,
dann ist dir vielleicht aufgefallen, dass die Linien, Kreise und Dreiecke in den
Abbildungen viel dicker sind als auf deinem Bildschirm. Das liegt daran, dass die
Linien standardmäßig immer die Dicke von einem Pixel haben. Du kannst die
Liniendicke aber mit der Prozedur SetzeLiniendicke selbst bestimmen
Zeichenbrett.SetzeLiniendicke(Dicke)
Für Dicke gibst du dann an, wie viele Pixel die Linie dick sein soll. Das Beispiel
in Listing 5.7 zeichnet Linien in unterschiedlichen Dicken. Das Ergebnis zeigt
Abbildung 5.9.
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.ZeichneLinie(100, 200, 200, 200)
Zeichenbrett.SetzeLiniendicke(3)
Zeichenbrett.ZeichneLinie(200, 200, 300, 200)
Zeichenbrett.SetzeLiniendicke(5)
Zeichenbrett.ZeichneLinie(300, 200, 400, 200)
109
5.3
5
Zeichnen
Zeichenbrett.SetzeLiniendicke(7)
Zeichenbrett.ZeichneLinie(400, 200, 500, 200)
End Sub
End Module
Listing 5.7 Das Zeichnen von Linien unterschiedlicher Dicke
Abbildung 5.9 Linien unterschiedlicher Dicke
5.4
Die Zeichenfarbe definieren
Natürlich können wir nicht nur in Schwarz zeichnen. Die Farbe des »Zeichenstifts« lässt sich verändern.
5.4.1 Das Farbsystem RGB
Bevor wir zu den dafür notwendigen Funktionen kommen, möchte ich noch kurz
etwas zu dem Farbsystem sagen, das eigentlich jeder Computer für die grafische
Darstellung verwendet: das RGB-System. RGB ist die Abkürzung für Rot, Grün
und Blau, die drei Komponenten, aus denen jede auf dem Bildschirm darstellbare
Farbe gemischt wird. (Eigentlich kommt die Abkürzung aus dem Englischen und
steht für Red, Green, Blue, aber glücklicherweise passt sie auch zu den deutschen
Farbnamen.)
Das RGB-System ist ein additives Farbsystem. Das bedeutet, die gemischten Farben addieren sich, vergleichbar mit dem Licht von Scheinwerfern. Stelle dir einmal vor, du gehst in einen Raum ohne Fenster, in dem drei Scheinwerfer stehen:
ein roter, ein grüner und ein blauer. Dann machst du die Tür hinter dir zu, lässt
110
Die Zeichenfarbe definieren
aber die Scheinwerfer ausgeschaltet. Es ist stockdunkel, pechschwarz. Genauso
ist es beim RGB-System, wenn alle drei Komponenten auf null stehen: Dann ist
das Ergebnis die Farbe Schwarz.
Wenn du jetzt die Stärke des roten Scheinwerfers ganz langsam hochdrehst, dann
weicht die Schwärze langsam einem Rot. Zunächst ist es noch ein sehr dunkles
Rot, aber wenn der rote Scheinwerfer bis zum Anschlag leuchtet, erhältst du ein
intensives Rot. Gleiches gilt natürlich auch für den grünen und den blauen
Scheinwerfer.
Und auch hier verhält sich das RGB-System identisch. Wenn du die Rot-Komponente langsam erhöhst, wird aus Schwarz langsam über Dunkelrot ein intensives
Rot. Das funktioniert auch mit der Grün- und Blau-Komponente.
Wenn du alle drei Scheinwerfer voll aufdrehst und ihre Lichtstrahlen alle auf
einen Punkt an der Wand richtest, dann entsteht dort weißes Licht. Im RGB-System erhält man die Farbe Weiß auf dieselbe Weise: Alle drei Komponenten werden auf Maximum gesetzt.
Darüber hinaus lassen sich die Sekundärfarben Violett, Türkis und Gelb folgendermaßen erzeugen:
왘 Violett entsteht durch Mischen von Rot und Blau zu gleichen Teilen.
왘 Türkis entsteht durch Mischen von Grün und Blau zu gleichen Teilen.
왘 Gelb entsteht durch Mischen von Rot und Grün zu gleichen Teilen.
5.4.2 Die Prozeduren zum Setzen der Farbe
Für jede der drei Komponenten (Rot, Grün und Blau) gibt es eine Funktion zum
Setzen der Intensität:
Zeichenbrett.SetzeRot(Intensitaet)
Zeichenbrett.SetzeGruen(Intensitaet)
Zeichenbrett.SetzeBlau(Intensitaet)
Für Intensitaet kann ein Wert von 0 (ausgeschaltet) bis 255 (volle Intensität)
gewählt werden.
Listing 5.8 zeichnet ein blaues Rechteck auf weißem Hintergrund. Standardmäßig
ist der Hintergrund grau, daher muss zuerst die aktuelle Farbe auf Weiß gesetzt
werden (alle Komponenten auf den Maximalwert 255), und dann muss das Zeichenbrett geputzt werden. Anschließend wird die Farbe auf Blau gesetzt. Da bereits
alle drei Komponenten den Maximalwert besitzen, auch Blau, müssen wir lediglich
die Rot- und Grün-Komponente auf null setzen und dann das Rechteck zeichnen.
111
5.4
5
Zeichnen
Module Hauptmodul
Sub Main()
Zeichenbrett.Oeffnen(600, 400)
Zeichenbrett.SetzeRot(255)
Zeichenbrett.SetzeGruen(255)
Zeichenbrett.SetzeBlau(255)
Zeichenbrett.PutzeZeichenbrett()
Zeichenbrett.SetzeRot(0)
Zeichenbrett.SetzeGruen(0)
Zeichenbrett.ZeichneGefuelltesRechteck(100, 100, 400, 200)
End Sub
End Module
Listing 5.8 Ein blaues Rechteck auf weißem Hintergrund zeichnen
5.4.3 Die Funktionen zum Auslesen der Farbe
Es wird Situationen geben, in denen es notwendig sein wird, die aktuell eingestellte Farbe auslesen zu können. Dazu gibt es folgende Funktionen, die der Vollständigkeit halber hier aufgeführt sind:
Zeichenbrett.ErmittleRot()
Zeichenbrett.ErmittleGruen()
Zeichenbrett.ErmittleBlau()
Wie wir mit Werten umgehen, die von Funktionen zurückgeliefert werden,
haben wir noch nicht besprochen. Die notwendigen Informationen dazu werden
in den Kapiteln 6, » Variablen und Rechnen«, und 7, »Prozeduren II und Funktionen«, erklärt.
5.5
Zusammenfassung
In diesem Kapitel haben wir die Zeichenfunktionen des Zeichenbretts aus der
Scara.dll besprochen. In diesem Zusammenhang wurde das Koordinatensystem
und das RGB-Farbsystem erklärt.
112
Index
A
Add 200
Addition 114
Algorithmus 37
And 151
AndAlso 171
Append 213
Array 193
AscW 207
Attribut 234
AusgabeAnhalten 167
AusgabeFortsetzen 168
AutoScroll 279
B
BackColor 279
Beenden 49
Boolean 156
Breite 131
Brute Force 268
Button 280
C
DreheNachLinks 62
DreheUm 329
Drehverzoegerung 99
E
Eigenschaftenfenster 277
Elementoperator 57
Else 84
End Function 140
End If 81
End Module 42
End Structure 225
End While 89
Entscheidung 77
Entweder-oder-Verzweigung 83
Entwurfsansicht 284
Ereignis 283
ErmittleBlau 112
ErmittleGruen 112
ErmittlePalettenhoehe 175
ErmittleRot 112
ErmittleXPosition 206
ErmittleYPosition 206
Exit 172
Case 155
Char 207
ChrW 207
Class 232
Clear 57, 201
Codeansicht 284
Collection 199
Console 56
ReadLine 121
Convert 122
Count 201
F
D
G
Division 114
Do ... While 157
Double 126
Gehen 50
Grundrechenarten 114
Fallunterscheidung 153
False 80
Fehlerliste 53
For 161
FormBorderStyle 280
Friend 233
Function 140
Funktion 140
Funktionsparameter 138
393
Index
H
Handles 285
Hoehe 131
I
If 81
Imports 200
IndexOf 211
Insert 213
Integer 118
Is 195
IsDigit 209
IsLetter 209
IsLetterOrDigit 209
IsLower 209
IsPunctuation 209
IstVorneAbgrund 80
IstVornePalette 175
IsUpper 209
IsWhiteSpace 210
K
Klasse 232
Kommentare 91
Konstruktor 237
Kurzschlusseigenschaft 170
L
LastIndexOf 212
LegePaletteAb 175
Length 197, 210
List 199
Load 288
LoescheTextfenster 273
Logische Operatoren 149
Logisches Oder 152
Logisches Und 151
M
Member-Operator 57
MerkePosition 204
Methode 235
394
Module 42
Modulo 115
Multiplikation 114
N
Namensbereich 57
Namensregeln 66
Negation 153
.NET Framework 57
New 195
Next 161, 180
Nicht, logisches 153
NimmPalette 175
Not 153
Nothing 195
O
Objekt 234
Oder, logisches 152
Oeffnen 101
Of 199
Opacity 280
Or 152
OrElse 172
P
Parameterliste 139
Private 234
Programm 38
Prozedurparameter 138
Public 233, 234
PutzeZeichenbrett 109
R
Random 179
ReadLine 121
Relationale Operatoren 82
Remove 201, 214
RemoveAt 201
Replace 214
Restwert 115
Return 141
RGB-System 110
Index
S
Scanne 291
Scara
Beenden 49
DreheNachLinks 62
Drehverzoegerung 99
ErmittlePalettenhoehe 175
ErmittleXPosition 206
ErmittleYPosition 206
Gehen 50
IstVorneAbgrund 80
IstVornePalette 175
LegePaletteAb 175
MerkePosition 204
NimmPalette 175
Scanne 291
SindPositionenGespeichert 204
Springe 292
SpringeZu 206
SpringeZurueck 204
Starten 45
StehtAufAnkh 96
TempoLangsam 98
TempoNormal 98
TempoSchnell 98
TempoSehrSchnell 98
TempoZeitlupe 98
Select 154
SetzeBlau 111
SetzeGruen 111
SetzeLiniendicke 109
SetzeRot 111
SindPositionenGespeichert 204
Single 126
Springe 292
SpringeZu 206
SpringeZurueck 204
Starten 45
StehtAufAnkh 96
Step 161
String 210
StringBuilder 213
Append 213
Insert 213
Remove 214
Replace 214
Structure 225
Substring 211
Subtraktion 114
System 57
T
TempoLangsam 98
TempoNormal 98
TempoSchnell 98
TempoSehrSchnell 98
TempoZeitlupe 98
Text 280
Textausgabe 55
Then 81
ToLower 210
Toolbox 281
ToUpper 210
True 80
U
Überladen 217
UML 39
Und, logisches 151
Unified Modelling Language 39
V
Variablen 115
Vergleichsoperatoren 82
Verneinung 153
Verweistyp 194
W
Wenn-dann-Verzweigung 80
While 89
Windows Forms-Anwendung 275
Write 56
WriteLine 56
X
Xor 153
395
Index
Z
Zeichenbrett
AusgabeAnhalten 167
AusgabeFortsetzen 168
Breite 131
ErmittleBlau 112
ErmittleGruen 112
ErmittleRot 112
Hoehe 131
LoescheTextfenster 273
Oeffnen 101
PutzeZeichenbrett 109
SetzeBlau 111
SetzeGruen 111
SetzeLiniendicke 109
SetzeRot 111
ZeichneDreieck 106
ZeichneEllipse 105
ZeichneGefuellteEllipse 106
396
Zeichenbrett (Forts.)
ZeichneGefuelltesDreieck 107
ZeichneGefuelltesRechteck 107
ZeichneGefuelltesViereck 108
ZeichneLinie 104
ZeichnePunkt 104
ZeichneText 108
ZeichneDreieck 106
ZeichneEllipse 105
ZeichneGefuellteEllipse 106
ZeichneGefuelltesDreieck 107
ZeichneGefuelltesRechteck 107
ZeichneGefuelltesViereck 108
ZeichneLinie 104
ZeichnePunkt 104
ZeichneText 108
Zeilenumbruch 245
Zugriffsmethode 239
Zugriffsrecht 233, 234
Zusammengesetzter Datentyp 225
Zuweisungsoperator 118
Zugehörige Unterlagen
Herunterladen