Sign in Join
Wiki copytemporary

BGRABitmap tutorial 12/de: what changed

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

OldNewLine
11Dieses Tutorial zeigt, wie Sie Textfunktionen einsetzen können.
22
33### Erzeugen Sie ein neues Projekt
44
55Erzeugen Sie ein neues Projekt und fügen Sie eine Referenz auf [[BGRABitmap/de|BGRABitmap]] hinzu, genau so wie im [[BGRABitmap tutorial/de|ersten Tutorial]].
66
77### Einfacher Text
88
99So zeichnen Sie einen einfachen Text:
1010
1111``` pascal
1212procedure TForm1.FormPaint(Sender: TObject);
1313var
1414 image: TBGRABitmap;
1515 c: TBGRAPixel;
1616begin
1717 image := TBGRABitmap.Create(ClientWidth,ClientHeight, ColorToBGRA(ColorToRGB(clBtnFace)) );
1818 c := ColorToBGRA(ColorToRGB(clBtnText)); //retrieve default text color
1919
2020 image.FontHeight := 30;
2121 image.FontAntialias := true;
2222 image.FontStyle := [fsBold];
2323 image.TextOut(5,5,'Hello world',c);
2424 image.SetPixel(5,5,c);
2525
2626 image.Draw(Canvas,0,0,True);
2727 image.free;
2828end;
2929```
3030
3131Hier ist die Schriftgröße auf 30 Pixels eingestellt, mit Antialiasing. Die Verwendung des Font-Antialiasing ist langsamer, aber schöner.
3232
3333Die obere, linke Ecke des Textes liegt bei (5,5). Dieser Ursprung wird mittels 'SetPixel' angezeigt.
3434
35-<figure>
36-<img src="BGRATutorial12a.png" title="BGRATutorial12a.png" />
37-<figcaption>BGRATutorial12a.png</figcaption>
38-</figure>
35+![](/wiki-images/4/40/BGRATutorial12a.png)
3936
4037#### Verwenden von Textausrichtungen
4138
4239Ersetzen Sie einfach die Zeilen mit 'TextOut' und 'SetPixel' durch:
4340
4441``` pascal
4542 image.TextOut(ClientWidth-5,5,'Hello world',c,taRightJustify);
4643 image.SetPixel(ClientWidth-5,5,c);
4744```
4845
4946Jetzt ist der Ursprung an der rechten Seite des Formulars und der Text ist rechtbündig ausgerichtet.
5047
51-<figure>
52-<img src="BGRATutorial12b.png" title="BGRATutorial12b.png" />
53-<figcaption>BGRATutorial12b.png</figcaption>
54-</figure>
48+![](/wiki-images/6/61/BGRATutorial12b.png)
5549
5650### Rotated text
5751
5852Ebenso einfach ist es, gedrehten Text zu zeichnen. Dazu nehmen Sie 'TextOutAngle' oder legen Sie die Eigenschaft 'FontOrientation' fest:
5953
6054``` pascal
6155 image.TextOutAngle(30,5,-450,'Hello world',c, taLeftJustify);
6256 image.SetPixel(30,5,c);
6357```
6458
6559Der Winkel wird in Zehntelgraden angegeben; ein positiver Wert bedeutet 'im Gegenzeigersinn'.
6660
67-<figure>
68-<img src="BGRATutorial12c.png" title="BGRATutorial12c.png" />
69-<figcaption>BGRATutorial12c.png</figcaption>
70-</figure>
61+![](/wiki-images/b/b5/BGRATutorial12c.png)
7162
7263Beachten Sie wo der Textursprung liegt (das hinzugefügte Pixel).
7364
7465### Zeilenumbruch eines Textes
7566
7667Dazu gibt es eine einfach verwendbare Version von 'TextRect':
7768
7869``` pascal
7970 image.TextRect(rect(5,5,ClientWidth-5,ClientHeight-5),'This is a text that should be word wrapped',taCenter,tlCenter,c);
8071 image.Rectangle(rect(5,5,ClientWidth-5,ClientHeight-5),c,dmSet);
8172```
8273
8374Die Parameter sind:
8475
8576- das umgebende Rechteck
8677- der Text
8778- die horizontale Ausrichtung
8879- die vertikale Ausrichtung
8980- die Farbe
9081
91-<figure>
92-<img src="BGRATutorial12d.png" title="BGRATutorial12d.png" />
93-<figcaption>BGRATutorial12d.png</figcaption>
94-</figure>
82+![](/wiki-images/c/ce/BGRATutorial12d.png)
9583
9684### Text mit Schatten
9785
9886Sie erzielen einen Textschatten mit dem Blur-Effekt (=Weichzeichner):
9987
10088``` pascal
10189var
10290 image,txt: TBGRABitmap;
10391 grad: TBGRAGradientScanner;
10492 c: TBGRAPixel;
10593begin
10694 image := TBGRABitmap.Create(ClientWidth,ClientHeight, ColorToBGRA(ColorToRGB(clBtnFace)) );
10795 c := ColorToBGRA(ColorToRGB(clBtnText));
10896
10997 txt := TextShadow(ClientWidth,ClientHeight,'Hello world',30,c,BGRABlack,5,5,5);
11098 image.PutImage(0,0,txt,dmDrawWithTransparency);
11199 txt.Free;
112100
113101 image.Draw(Canvas,0,0,True);
114102 image.free;
115103end;
116104```
117105
118106Die Prozedur TextShadow erzeugt eine Bitmap, die den Text mit dem Schatten enthält. Die Parameter sind:
119107
120108- die Größe der Bitmap
121109- der Text
122110- die Schrifthöhe
123111- die Schriftfarbe
124112- die Schattenfarbe
125113- der Versatz des Schattens und die Größe des Blur
126114
127115Vergessen Sie nicht, die Bitmap nach der Verwendung wieder freizugeben.
128116
129-<figure>
130-<img src="BGRATutorial12e.png" title="BGRATutorial12e.png" />
131-<figcaption>BGRATutorial12e.png</figcaption>
132-</figure>
117+![](/wiki-images/b/b7/BGRATutorial12e.png)
133118
134119### Text mit Gradienten
135120
136121Wie bei den übrigen Zeichenfunktionen, können Sie einen Gradienten oder eine Textur zum Füllen des Textes angeben. Hier ist ein Beispiel:
137122
138123``` pascal
139124uses BGRAGradientScanner;
140125
141126var
142127 image: TBGRABitmap;
143128 grad: TBGRAGradientScanner;
144129begin
145130 image := TBGRABitmap.Create(ClientWidth,ClientHeight, ColorToBGRA(ColorToRGB(clBtnFace)) );
146131
147132 grad := TBGRAGradientScanner.Create(BGRA(255,255,0),BGRA(255,0,0),gtLinear,PointF(0,0),PointF(0,35),True,True);
148133 image.FontHeight := 30;
149134 image.FontAntialias := true;
150135 image.FontStyle := [fsBold];
151136 image.TextOut(6,6,'Hello world',BGRABlack); //zeichne einen schwarzen Rahmen
152137 image.TextOut(5,5,'Hello world',grad); //zeichne den Text mit Farbverlauf
153138 grad.free;
154139
155140 image.Draw(Canvas,0,0,True);
156141 image.free;
157142end;
158143```
159144
160145Zuerst wird ein horizontaler Sinusgradient erzeugt (in den Farben gelb und rot). Diesen verwenden wir dann als Textur.
161146
162-<figure>
163-<img src="BGRATutorial12f.png" title="BGRATutorial12f.png" />
164-<figcaption>BGRATutorial12f.png</figcaption>
165-</figure>
147+![](/wiki-images/7/7e/BGRATutorial12f.png)
166148
167149[[BGRABitmap tutorial 11/de|Voriges Tutorial (Kombinieren von Transformationen)]] \| [[BGRABitmap tutorial 13/de|Nächstes Tutorial (Koordinatensystem)]]
168150
169151---
170152*From the Free Pascal wiki, page "BGRABitmap tutorial 12/de", as it stood on 2022-10-23 after a change by VamLykTan, 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