![]() |
TStringGrid, OnwerDraw, Kreis sieht komisch aus
Hallo #,
ich male einen Kreis in einer Zelle OnDrawCell c ist der Canvas Inc(ARect.Left,4); Inc(ARect.Top,4); Dec(ARect.Right,4); Dec(ARect.Bottom,4); c.Ellipse(ARect); Der Kreis sieht aber komisch aus, irgendwie eckig. Ich weiss (aus Grafik in Informatik) dass Treppenstufen unvermeidbar sind, aber war da mal nicht was, dass der rechte untere Punkt des Rechtecks nicht mitzählt ?? Danke Heiko |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
was ist "ARect"?
|
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Hallo,
procedure TForm.GridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); Das Rect hier also das Rechteck um eine Zelle. Heiko |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Wenn das umgebende Rect zu klein ist, sieht der resultierende Kreis immer suboptimal aus. Evtl. könnte man das mit AntiAliasing etwas mildern.
|
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Zitat:
Bei einem Quadrat würde der Kreis rund werden, mit dem Code von deinem ersten Thread. Bei einem Rechteck muss der Kreis ja "eiern" weil die Ecken, also X1, Y1 und X2, Y2 nicht gleich weit auseinander liegen. Sprich die Differenz der X-Werte ist größer als die Differenz der Y-Werte. (oder anderes rum, je nach ob die Zelle breiter oder höher ist) |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Das hat mit Quadrat oder Rechteck IMO weniger zu tun. Erstell doch mal ein neues Projekt und pack dies hier ins OnPaint:
Delphi-Quellcode:
Hat teilweise eher etwas von einem Kreissägeblatt als von einem Kreis.
procedure TForm1.FormPaint(Sender: TObject);
begin Canvas.Ellipse(10,10,20,20); Canvas.Ellipse(10,30,25,45); Canvas.Ellipse(10,55,30,75); Canvas.Ellipse(10,85,50,125); end; |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Hallo,
jepp, das ist mein Problem. Ich habe Höhe = Breite = 45. Heiko |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Zitat:
Denn das Rect gibt ja nur die Ecke an, keinen Mittelpunkt oder Radius (sonst könnte man ja keine Ellipse zeichnen). Aber gut, das hat sich erledigt, weil ja Höhe und Breite gleich ist [Edit] Zeig doch mal ein Bild wie es ausschaut [/Edit] |
Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Liste der Anhänge anzeigen (Anzahl: 1)
Kann man evtl. etwas mit GDI+ machen? Hab gerade mal einen meiner runden Buttons mit den Maßen aufs Form gepackt, der sieht gar nicht schlecht aus.
[edit] Bild im Anhang [/edit] |
AW: TStringGrid, OnwerDraw, Kreis sieht komisch aus
Hallo,
ich greife das noch mal auf ... Jetzt bräuchet ich nämlich auch runde Buttons ;) Gibt es da bereits fertige Komponenten ? Ich habe hier TMS zur Verfügung. Danke Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 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