Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Abgerundete Ecke zeichnen (https://www.delphipraxis.net/200139-abgerundete-ecke-zeichnen.html)

Andreas L. 23. Mär 2019 10:47

Abgerundete Ecke zeichnen
 
Hallo,
ich habe eine Komponente (abgeleitet von TCustomPanel) der ich einen Rahmen gegeben habe. Gezeichnet wird einfach mittels Canvas.LineTo. Jetzt möchte ich gerne abgerundete Ecken haben. Canvas.RoundRect kann ich nicht nehmen weil nicht immer alle Ecken abgerundet sein sollen und weil die Rahmen (links, rechts, ...) ggf. unterschiedliche Farben und Styles (PenStyle) haben. Im Moment zeichne ich einfach einen Kreis und kopiere davon 25 %. Das gefällt mir aber nicht. Außerdem muss eine Ecke ggf. aus 2 Farben bestehen wenn die angrenzenden Rahmen unterschiedliche Farben haben.

Hat jemand eine Idee wie ich solch eine Ecke zeichnen kann?

Schöne Grüße und schönes Wochenende,
Andreas

Michael II 23. Mär 2019 12:14

AW: Abgerundete Ecke zeichnen
 
VCL.Graphics.Arc(..) ist wohl das, was du suchst.

Beispiel:

Delphi-Quellcode:
 
// Horizonale Linie
  Canvas.Moveto( 50,50 );
  Canvas.LineTo( clientwidth, 50 );
// Vertikale Linie
  Canvas.Moveto( 20, 100 );
  Canvas.LineTo( 20, clientheight );

// Und nun das Runde statt das Eckige:
  // http://www.matheass.de/ITG/delphi/grafik/zeichnen.html
  // Canvas.Ellipse( 20,50, 80,150 ); mit Arc zeichnest du einen Teil dieser Ellipse:
  Canvas.Arc( 20,50, 80,150, 50,50, 20, 100 );

moanersykes 3. Apr 2019 10:30

AW: Abgerundete Ecke zeichnen
 
Hi @Michael, Gibt es eine andere Möglichkeit zum Erstellen von Kreisen außer Graphics.Arc (..)?

Neutral General 3. Apr 2019 10:42

AW: Abgerundete Ecke zeichnen
 
Canvas.Ellipse zum Zeichnen von Ellipsen (und dementsprechend auch Kreisen)

EWeiss 3. Apr 2019 10:46

AW: Abgerundete Ecke zeichnen
 
Du warst schneller.
Delphi-Quellcode:
image1.Canvas.Ellipse( X-(Width div 2), Y-(Height div 2),X+(Width div 2), Y + (Height div 2))


X, Y als Mittelpunkt.
Und die Weite und Höhe für den Kreis\Ellipse.

gruss

Keinyth 19. Feb 2021 09:46

AW: Abgerundete Ecke zeichnen
 
Hallo,

Wie macht man eine Ecke aus einer Farbe?

Danke

himitsu 19. Feb 2021 12:19

AW: Abgerundete Ecke zeichnen
 
Garnicht?

* entweder man zeichnet die Ecke garnicht erst (was wohl Andreas gemacht hat)
* oder man verwendet ein Clipping, also definiert den Rand de Zeichenfläche und lässt sie abschneiden
* oder man verwendet das Gezeichnete (die Ecka malen, das Andere) als "TranzparenzFarbe", für andere Zeichenoperationen


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