Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 8,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 10 Zeichnen mit GDI+
  Pfeil 10.1 Grundlagen von GDI+
  Pfeil 10.2 Linie, Rechteck, Polygon und Ellipse zeichnen
    Pfeil 10.2.1 Grundeinstellungen
    Pfeil 10.2.2 Linie
    Pfeil 10.2.3 Rechteck
    Pfeil 10.2.4 Polygon
    Pfeil 10.2.5 Ellipse
    Pfeil 10.2.6 Dicke und Farbe ändern, Zeichnung löschen
  Pfeil 10.3 Text schreiben
  Pfeil 10.4 Bilder darstellen
  Pfeil 10.5 Dauerhaft zeichnen


Galileo Computing - Zum Seitenanfang

10.2 Linie, Rechteck, Polygon und Ellipse zeichnen  Zur nächsten ÜberschriftZur vorigen Überschrift

Das erste Beispielprogramm (p1001) enthält folgende Möglichkeiten:

  • Zeichnen einer Linie
  • Zeichnen eines leeren oder gefüllten Rechtecks
  • Zeichnen eines leeren oder gefüllten Polygons
  • Zeichnen einer leeren oder gefüllten Ellipse
  • Ändern der Stiftdicke
  • Ändern der Stiftfarbe
  • Löschen der gesamten Zeichnung

Das entstandene »Kunstwerk« könnte damit wie folgt aussehen:

Abbildung 10.1  Erste geometrische Objekte


Galileo Computing - Zum Seitenanfang

10.2.1 Grundeinstellungen  Zur nächsten ÜberschriftZur vorigen Überschrift

Zunächst müssen die Grundeinstellungen getroffen werden.

Programm p1001:

Public Class frm1001 
   Dim z As Graphics = Me.CreateGraphics() 
   Dim stift As New Pen(Color.Red, 2) 
   Dim pinsel As New SolidBrush(Color.Red) 
 
   Private Sub Form1_Load( ... ) Handles MyBase.Load 
      lstFarbe.Items.Add("Rot") 
      lstFarbe.Items.Add("Grün") 
      lstFarbe.Items.Add("Blau") 
      lstFarbe.SelectedIndex = 0 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung:

  • Die Methode CreateGraphics() liefert einen Verweis auf das Graphics-Objekt des Formulars. Es kann nun modulweit mithilfe von z auf die Zeichenfläche des Formulars zugegriffen werden.
  • Diese sehr einfache Methode hat allerdings den Nachteil, dass die Zeichnung teilweise oder ganz gelöscht wird, sobald z. B. eine andere Anwendung über dem Formular eingeblendet wird. Eine andere Methode wird am Ende dieses Abschnitts vorgestellt.

    Pen

  • Es wird ein Zeichenstift zum Zeichnen von Linien und nicht-gefüllten Objekten in der Farbe Rot und der Dicke 2 festgelegt. Dieser steht nun modulweit im Objekt stift der Klasse Pen zur Verfügung.

    SolidBrush

  • Ein einfacher Pinsel zum Füllen von Objekten wird ebenfalls in der Farbe Rot festgelegt. Dieser steht nun modulweit im Objekt pinsel der Klasse SolidBrush zur Verfügung.
  • Ein Listenfeld ermöglicht einen Farbwechsel für Stift und Pinsel. Dieses Listenfeld wird zu Beginn des Programms mit drei Farben gefüllt.

Galileo Computing - Zum Seitenanfang

10.2.2 Linie  Zur nächsten ÜberschriftZur vorigen Überschrift

DrawLine

Zum Zeichnen einer Linie wird die Methode DrawLine() verwendet:

Private Sub cmdLinie_Click( ... ) Handles ... 
   z.DrawLine(stift, 100, 40, 100, 60) 
End Sub

Abbildung 10.2  Linie, blau, Dicke 6

Zur Erläuterung:

  • Die Methode DrawLine() erfordert in jedem Fall einen Zeichenstift.
  • Anschließend werden die Start- und Endkoordinaten der Linie angegeben, entweder als Einzelkoordinaten (x,y) oder als Objekte der Klasse Point.

Galileo Computing - Zum Seitenanfang

10.2.3 Rechteck  Zur nächsten ÜberschriftZur vorigen Überschrift

DrawRectangle, FillRectangle

Die Methoden DrawRectangle() und FillRectangle() erzeugen ungefüllte bzw. gefüllte Rechtecke. Sind beide Seiten des Rechtecks gleich lang, handelt es sich bekanntlich um ein Quadrat:

Private Sub cmdRechteck_Click( ... ) Handles ... 
   If chkFüllen.Checked Then 
      z.FillRectangle(pinsel, 10, 10, 180, 180) 
      chkFüllen.Checked = False 
   Else 
      z.DrawRectangle(stift, 10, 10, 180, 180) 
   End If 
End Sub

Abbildung 10.3  Rechteck, rot, Dicke 10

Zur Erläuterung:

  • Der Benutzer kann über das Kontrollkästchen chkFüllen festlegen, ob es sich um ein gefülltes oder leeres Rechteck handeln soll.
  • Das gefüllte Rechteck benötigt einen Pinsel, das leere Rechteck einen Zeichenstift.

    Rechteck-Koordinaten

  • Anschließend gibt man entweder vier Werte für die x- und y-Koordinate der oberen linken Ecke sowie für die Breite und Höhe des Rechtecks oder ein Objekt der Klasse Rechteck an.
  • Falls der Benutzer das gefüllte Rechteck gewählt hat, wird das Kontrollkästchen für das nächste Objekt wieder zurückgesetzt.

Galileo Computing - Zum Seitenanfang

10.2.4 Polygon  Zur nächsten ÜberschriftZur vorigen Überschrift

DrawPolygon, FillPolygon

Polygone sind Vielecke und bestehen aus einem Linienzug, der nacheinander alle Ecken einschließt. Die Methoden DrawPolygon() und FillPolygon() erzeugen einen geschlossenen Polygonzug, der ungefüllt bzw. gefüllt ist.

Abbildung 10.4  Polygon, grün, gefüllt

Falls der Benutzer wie in Abbildung 10.4 das gefüllte Polygon gewählt hat, wird das Kontrollkästchen für das nächste Objekt wieder zurückgesetzt.

Private Sub cmdPolygon_Click( ... ) Handles ... 
   Dim point_feld() As Point = {New Point(90, 80), _ 
      New Point(110, 80), New Point(100, 120)} 
   If chkFüllen.Checked Then 
      z.FillPolygon(pinsel, point_feld) 
      chkFüllen.Checked = False 
   Else 
      z.DrawPolygon(stift, point_feld) 
   End If 
End Sub

Zur Erläuterung:

  • Ebenso wie das Rechteck kann auch das Polygon gefüllt (mithilfe eines Pinsels) oder ungefüllt (mithilfe eines Zeichenstifts) erzeugt werden.

    Point-Objekte

  • Als zweiter Parameter wird ein Feld von Objekten der Klasse Point benötigt. Die Anzahl der Elemente dieses Felds bestimmt die Anzahl der Ecken des Polygons.
  • Zwischen zwei Punkten, die in dem Feld aufeinander folgen, wird eine Linie gezogen. Vom letzten Punkt aus wird zuletzt noch eine Linie zum ersten Punkt gezogen.

Galileo Computing - Zum Seitenanfang

10.2.5 Ellipse  Zur nächsten ÜberschriftZur vorigen Überschrift

DrawEllipse, FillEllipse

Die Methoden DrawEllipse() und FillEllipse() erzeugen ungefüllte bzw. gefüllte Ellipsen innerhalb eines umgebenden Rechtecks. Sind beide Seiten des umgebenden Rechtecks gleich lang, so erhält man einen Kreis:

Private Sub cmdEllipse_Click( ... ) Handles ... 
   If chkFüllen.Checked Then 
      z.FillEllipse(pinsel, 10, 10, 180, 180) 
      chkFüllen.Checked = False 
   Else 
      z.DrawEllipse(stift, 10, 10, 180, 180) 
   End If 
End Sub

Abbildung 10.5  Ellipse, rot, gefüllt

Zur Erläuterung:

    Umgebendes Rechteck

  • Der Aufbau der Ellipse entspricht dem Aufbau eines Rechtecks, das diese Ellipse umgibt.

Galileo Computing - Zum Seitenanfang

10.2.6 Dicke und Farbe ändern, Zeichnung löschen  topZur vorigen Überschrift

Einige Hilfsroutinen vervollständigen unser kleines Zeichenprogramm:

Private Sub numPenWidth_ValueChanged( ... ) _ 
        Handles ... 
   stift.Width = numPenWidth.Value 
End Sub 
 
Private Sub lstFarbe_SelectedIndexChanged( ... ) _ 
        Handles ... 
   Dim color_feld() As Color = _ 
      {Color.Red, Color.Green, Color.Blue} 
   stift.Color = color_feld(lstFarbe.SelectedIndex) 
   pinsel.Color = color_feld(lstFarbe.SelectedIndex) 
End Sub 
 
Private Sub cmdClear_Click( ... ) Handles ... 
   z.Clear(Me.BackColor) 
End Sub

Zur Erläuterung:

  • Die Eigenschaft Width bestimmt die Dicke des Zeichenstifts. Der Wert des Zahlenauswahlfelds wird bei einer Änderung unmittelbar für die Stiftdicke übernommen.

    Color

  • Die Eigenschaft Color bestimmt die Farbe des Zeichenstifts und des Pinsels. Der Index des ausgewählten Elements im Listenfeld wird bei einer Änderung unmittelbar übernommen, um das zugehörige Element des Felds color_feld zu bestimmen. Das Feld color_feld ist ein Feld von Objekten der Struktur Color.

    Clear

  • Die Methode Clear() dient zum Löschen der Zeichenfläche. Eigentlich handelt es sich um ein Auffüllen mit einer Einheitsfarbe. Hier wird die normale Hintergrundfarbe des Formulars zum Auffüllen genommen.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de