BGRABitmap tutorial 6/de
Deutsch · English · Español · Français
Dieses Tutorial zeigt, wie Sie unterschiedliche Linienarten und Formen verwenden können.
Erzeugen Sie ein neues Projekt
Erzeugen Sie ein neues Projekt und fügen Sie eine Referenz auf BGRABitmap hinzu, genau so wie im ersten Tutorial.
Fügen Sie einen Zeichen-Handler hinzu
Im Objektinspektor fügen Sie einen OnPaint-Handler hinzu und schreiben Sie:
procedure TForm1.FormPaint(Sender: TObject);
var image: TBGRABitmap;
c: TBGRAPixel;
begin
image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
c := clWindowText;
image.RectangleAntialias(80,80,300,200, c, 50);
image.Draw(Canvas,0,0,True);
image.free;
end;Starten Sie das Programm
Das sollte ein Rechteck mit einem breiten, schwarzen Stift zeichnen.

Ändern Sie die Verbindungsart
Wenn Sie abgerundete Ecken wollen, geben Sie an:
image.JoinStyle := pjsRound;Starten Sie das Programm
Das sollte ein Rechteck mit einem breiten, schwarzen Stift und abgerundeten Ecken zeichnen.

Mischen Sie die Verbindungsarten
Sie können die Verbindungsarten für ein Rechteck folgendermaßen mischen:
image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);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.

Ändern Sie die Linienart
Sie können auch eine punktierte Linie zeichnen:
image.JoinStyle := pjsBevel;
image.PenStyle := psDot;
image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);Sie erhalten dadurch folgendes Bild. Beachten Sie den gerundeten Linienanfang.

Ändern Sie die Linienenden
Zeichnen Sie einen Linienzug mit eckigen Linienenden:
image.JoinStyle := pjsBevel;
image.LineCap := pecSquare;
image.PenStyle := psSolid;
image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
Zeichnen offener Linien
Sie können eine offene Linie zeichnen, d.h. das Linienende ist ausgehöhlt.
image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);
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:
c := BGRA(0,0,0,128);
image.DrawLineAntialias(40,150, 120,50, c, 10);
image.DrawLineAntialias(120,50, 170,90, c, 10);
image.DrawLineAntialias(170,90, 250,10, c, 10);
image.DrawLineAntialias(40,250, 120,150, c, 10, False);
image.DrawLineAntialias(120,150, 170,190, c, 10, False);
image.DrawLineAntialias(170,190, 250,110, c, 10, True);
Voriges Tutorial (Ebenen und Masken) | Nächstes Tutorial (Splines)
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.
Edited on wiki.freepascal.org by 6 people, 2011–2024
From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.
| When | Who | What changed |
|---|---|---|
| Billyraybones | translated (minor) | |
| Billyraybones | Zeichnen offener Linien: german link (minor) | |
| Billyraybones | Zeichnen offener Linien (minor) | |
| Billyraybones | link to next tutorial (minor) | |
| Lainz | (minor) | |
| Billyraybones | link to german index (minor) | |
| Billyraybones | missing | (minor) | |
| Chronos | ||
| Vincent | Text replace - "delphi>" to "syntaxhighlight>" (minor) | |
| Trev | Fixed syntax highlighting; deleted category already in page template (minor) | |
| Circular | Fügen Sie einen Zeichen-Handler hinzu: auto-convert color type |
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
