Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   ExtCreatePen und ps_USERSTYLE (https://www.delphipraxis.net/194994-extcreatepen-und-ps_userstyle.html)

striderx 24. Jan 2018 20:52

ExtCreatePen und ps_USERSTYLE
 
Hallo zusammen,

ich möchte eine Line zeichnen, bei der sich Quadrate und gleich große Leerräume abwechseln. Leider klappt das nicht - was herauskommt sind dashes und relativ schmale Leerräume. Ich hätte ja zumindest erwartet, dass beide Abschnitte gleich groß sind.

Hat jemand eine Idee?


Delphi-Quellcode:
procedure TdlgMain.DrawLine(BM: tBitmap);

var
  aPattern:  Array[0..1] of Integer;
  lBrush:    LogBrush;
  LineWidth: Word;
  NewPen:    hPen;
  X:         Integer;
  Y:         Integer;

begin
  LineWidth     := 40;
  lbrush.lbStyle := BS_SOLID;
  lbrush.lbColor := clRed;
  lbrush.lbHatch := 0;

  if NewPen <> 0 then begin
     NewPen := 0;
     DeleteObject(NewPen);
  end;

  aPattern[0] := LineWidth;
  aPattern[1] := LineWidth;

  NewPen := ExtCreatePen(PS_GEOMETRIC or PS_USERSTYLE or
                         PS_ENDCAP_SQUARE or PS_JOIN_MITER,
                         LineWidth, lBrush, Length(aPattern), @aPattern);

  BM.Canvas.Pen.Handle := NewPen;
  BM.Canvas.MoveTo(100, 0);
  BM.Canvas.LineTo(100, BM.Height - 1);

  if NewPen <> 0 then begin
     NewPen := 0;
     DeleteObject(NewPen);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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