![]() |
Canvas-Pen zeichnet abgerundete Linien
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Wenn ich mit canvas.lineto eine Linie zeichnet, wird die automatisch abgerundet. Ich will aber eckige Kreuze in meinem Prog haben. Ich habe keine Eigenschaft von Pen gefunden, wo man die Pinselform einstellen kann. Wie geht das? |
Re: Canvas-Pen zeichnet abgerundete Linien
Man könnte auch Vierecke malen.
|
Re: Canvas-Pen zeichnet abgerundete Linien
einfach mit fillrect die beiden Streifen übereinander malen..
|
Re: Canvas-Pen zeichnet abgerundete Linien
Es muss auch mit Linien gehen.
Wie die Linienenden gemalt werden ist irgendwo einstellbar. Ich weiss bloss nicht mehr wie die Win32-Funktion dazu heisst. Quael mal die Win32-Hilfe. |
Re: Canvas-Pen zeichnet abgerundete Linien
Ich möchte wirklich keine Rechtecke zeichnen, vor allem weil ich dann z.B. auf die komfortable Einstellung der Linienbreite verzichten müsste.
Und wenn das ganze dicker und schief ist, wird sowieso mathematisch ;) Danke für den Tip mit der API-Funktion! Hab im winsdk nachgeschaut. Der Befehl heißt ExtCreatePen und die Syntax ist: HPEN ExtCreatePen( DWORD dwPenStyle, // pen style DWORD dwWidth, // pen width CONST LOGBRUSH *lplb, // pointer to structure for brush attributes DWORD dwStyleCount, // length of array containing custom style bits CONST DWORD *lpStyle // optional array of custom style bits ); Bei dwPenStyle ist die gesuchte Eigenschaft drinnen: End cap Description PS_ENDCAP_ROUND End caps are round. PS_ENDCAP_SQUARE End caps are square. PS_ENDCAP_FLAT End caps are flat. Wie setze ich das in Delphi um? lplb wird doch nicht TPen entsprechen, oder? das wäre ja irgendwie zu einfach :mrgreen: |
Re: Canvas-Pen zeichnet abgerundete Linien
Delphi-Quellcode:
var
Brush: LOGBRUSH; // ... Brush.lbStyle := BS_SOLID; Brush.lbColor := RGB(0, 0, 0); h := SelectObject(Canvas.Handle, ExtCreatePen(PS_GEOMETRIC or PS_SOLID or PS_ENDCAP_FLAT or PS_JOIN_MITER, 1, @Brush, 0, nil)); // Linien zeichnen DeleteObject(SelectObject(Canvas.Handle, h)); |
AW: Canvas-Pen zeichnet abgerundete Linien
Hallo Niko,
genau nach sowas habe ich gesucht. Danke! :thumb: Gruß e-gon |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz