Sign in Join
Wiki copytemporary

BGRABitmap tutorial 6/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: BGRABitmap tutorial 6/de

OldNewLine
1+Dieses Tutorial zeigt, wie Sie unterschiedliche Linienarten und Formen verwenden können.
2+
3+### Erzeugen Sie ein neues Projekt
4+
5+Erzeugen Sie ein neues Projekt und fügen Sie eine Referenz auf [[BGRABitmap/de|BGRABitmap]] hinzu, genau so wie im [[BGRABitmap tutorial/de|ersten Tutorial]].
6+
7+### Fügen Sie einen Zeichen-Handler hinzu
8+
9+Im Objektinspektor fügen Sie einen OnPaint-Handler hinzu und schreiben Sie:
10+
11+``` pascal
12+procedure TForm1.FormPaint(Sender: TObject);
13+var image: TBGRABitmap;
14+ c: TBGRAPixel;
15+begin
16+ image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
17+ c := clWindowText;
18+
19+ image.RectangleAntialias(80,80,300,200, c, 50);
20+
21+ image.Draw(Canvas,0,0,True);
22+ image.free;
23+end;
24+```
25+
26+### Starten Sie das Programm
27+
28+Das sollte ein Rechteck mit einem breiten, schwarzen Stift zeichnen.
29+
30+<figure>
31+<img src="BGRATutorial6a.png" title="BGRATutorial6a.png" />
32+<figcaption>BGRATutorial6a.png</figcaption>
33+</figure>
34+
35+### Ändern Sie die Verbindungsart
36+
37+Wenn Sie abgerundete Ecken wollen, geben Sie an:
38+
39+``` pascal
40+ image.JoinStyle := pjsRound;
41+```
42+
43+### Starten Sie das Programm
44+
45+Das sollte ein Rechteck mit einem breiten, schwarzen Stift und abgerundeten Ecken zeichnen.
46+
47+<figure>
48+<img src="BGRATutorial6b.png" title="BGRATutorial6b.png" />
49+<figcaption>BGRATutorial6b.png</figcaption>
50+</figure>
51+
52+### Mischen Sie die Verbindungsarten
53+
54+Sie können die Verbindungsarten für ein Rechteck folgendermaßen mischen:
55+
56+``` pascal
57+ image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);
58+```
59+
60+Diese Funktion benutzt abgerundete Ecken als Vorgabe, aber Sie können dies durch normale Ecken oder abgeschrägte Ecken überschreiben. Sie erhalten dadurch folgendes Bild.
61+
62+<figure>
63+<img src="BGRATutorial6e.png" title="BGRATutorial6e.png" />
64+<figcaption>BGRATutorial6e.png</figcaption>
65+</figure>
66+
67+### Ändern Sie die Linienart
68+
69+Sie können auch eine punktierte Linie zeichnen:
70+
71+``` pascal
72+ image.JoinStyle := pjsBevel;
73+ image.PenStyle := psDot;
74+ image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
75+```
76+
77+Sie erhalten dadurch folgendes Bild. Beachten Sie den gerundeten Linienanfang.
78+
79+<figure>
80+<img src="Tutorial6c.png" title="Tutorial6c.png" />
81+<figcaption>Tutorial6c.png</figcaption>
82+</figure>
83+
84+### Ändern Sie die Linienenden
85+
86+Zeichnen Sie einen Linienzug mit eckigen Linienenden:
87+
88+``` pascal
89+ image.JoinStyle := pjsBevel;
90+ image.LineCap := pecSquare;
91+ image.PenStyle := psSolid;
92+ image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
93+```
94+
95+<figure>
96+<img src="BGRATutorial6d.png" title="BGRATutorial6d.png" />
97+<figcaption>BGRATutorial6d.png</figcaption>
98+</figure>
99+
100+### Zeichnen offener Linien
101+
102+Sie können eine offene Linie zeichnen, d.h. das Linienende ist ausgehöhlt.
103+
104+``` pascal
105+ image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);
106+```
107+
108+<figure>
109+<img src="BGRATutorial6f.png" title="BGRATutorial6f.png" />
110+<figcaption>BGRATutorial6f.png</figcaption>
111+</figure>
112+
113+Auf diese Weise lassen sich mehrere Linien miteinander verbinden, ohne die Verbindung doppelt zu zeichnen. Das ist besonders nützlich bei semi-transparenten Zeichnungen. Vergleichen Sie die Ergebnisse:
114+
115+``` pascal
116+ c := BGRA(0,0,0,128);
117+
118+ image.DrawLineAntialias(40,150, 120,50, c, 10);
119+ image.DrawLineAntialias(120,50, 170,90, c, 10);
120+ image.DrawLineAntialias(170,90, 250,10, c, 10);
121+
122+ image.DrawLineAntialias(40,250, 120,150, c, 10, False);
123+ image.DrawLineAntialias(120,150, 170,190, c, 10, False);
124+ image.DrawLineAntialias(170,190, 250,110, c, 10, True);
125+```
126+
127+<figure>
128+<img src="Tutorial6g.png" title="Tutorial6g.png" />
129+<figcaption>Tutorial6g.png</figcaption>
130+</figure>
131+
132+[[BGRABitmap tutorial 5/de|Voriges Tutorial (Ebenen und Masken)]] \| [[BGRABitmap tutorial 7/de|Nächstes Tutorial (Splines)]]
133+
134+---
135+*From the Free Pascal wiki, page "BGRABitmap tutorial 6/de", as it stood on 2024-02-15 after a change by Circular, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history