Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Canvas: Zeichnen Line mit BrushStyle (https://www.delphipraxis.net/190114-canvas-zeichnen-line-mit-brushstyle.html)

Jacks 1. Sep 2016 10:13

Canvas: Zeichnen Line mit BrushStyle
 
Hi,

kann man in Delphi breite Linien mit einem TBrushStyle füllen?
Oder muss ich die Linie erst in ein Polygon wandeln?

Aktuell erhalte ich nur gefüllte Linien.

Code:
  try
    MyCanvas.Brush.Style := TBrushStyle(StrToInt(MyPenStyle))
  except
    MyCanvas.Brush.Style := TBrushStyle.bsSolid;
  end;
  MyCanvas.Brush.Color := MyPencolor;
  MyCanvas.Pen.Color := MyPencolor;
   MyCanvas.Pen.Width := (PixelWidth);


   MyCanvas.MoveTo(X1, Y1);
   MyCanvas.LineTo(X2, Y2);
Danke
Jacks

rwalper 1. Sep 2016 10:25

AW: Canvas: Zeichnen Line mit BrushStyle
 
Ja, das geht, Du musst nur ExtCreatePen verwenden, wie z.B. wie folgt:
Delphi-Quellcode:
const
  FlatPenStyle = PS_GEOMETRIC or PS_DOT or coDefault_Endcap or PS_JOIN_MITER;
var
  LogBrush: TLOGBRUSH;
begin
  LogBrush.lbStyle := BS_SOLID;
  LogBrush.lbColor := clGray;
  LogBrush.lbHatch := 0;
  Canvas.Pen.Handle := ExtCreatePen(FlatPenStyle, 1, LogBrush, 0, nil);
  ...

Jacks 1. Sep 2016 14:07

AW: Canvas: Zeichnen Line mit BrushStyle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke,

erhalte nun folgendes Ergebnis
Anhang 45763

Das verändern vom Brush Style funktioniert gut.
Allerdings wird bei mir die Kante der Linie nicht mehr gezeichnet?

Code:
 
try
    LogBrush.lbStyle := BS_HATCHED;
     LogBrush.lbHatch := StrToInt(MyStyle);
  except
    LogBrush.lbStyle := BS_SOLID;
  end;
  LogBrush.lbColor := MyColor;
  MyCanvas.Pen.Handle := ExtCreatePen(  PS_GEOMETRIC , MyWidth, LogBrush, 0, nil);


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz