AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TStringGrid, OnwerDraw, Kreis sieht komisch aus
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid, OnwerDraw, Kreis sieht komisch aus

Ein Thema von hoika · begonnen am 22. Okt 2008 · letzter Beitrag vom 22. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:09
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.325 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:14
was ist "ARect"?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:18
Hallo,

procedure TForm.GridDrawCell(Sender: TObject;
ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

Das Rect hier
also das Rechteck um eine Zelle.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:23
Wenn das umgebende Rect zu klein ist, sieht der resultierende Kreis immer suboptimal aus. Evtl. könnte man das mit AntiAliasing etwas mildern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.325 Beiträge
 
Delphi XE2 Professional
 
#5

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:26
Zitat von hoika:
Das Rect hier
also das Rechteck um eine Zelle.
Ist das ein Rechteck oder ein Quadrat?

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)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:30
Das hat mit Quadrat oder Rechteck IMO weniger zu tun. Erstell doch mal ein neues Projekt und pack dies hier ins OnPaint:
Delphi-Quellcode:
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;
Hat teilweise eher etwas von einem Kreissägeblatt als von einem Kreis.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:40
Hallo,

jepp, das ist mein Problem.

Ich habe Höhe = Breite = 45.



Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.325 Beiträge
 
Delphi XE2 Professional
 
#8

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:46
Zitat von DeddyH:
Das hat mit Quadrat oder Rechteck IMO weniger zu tun.
Ich denke schon dass das ein wichtiger Punkt ist.
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]
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Okt 2008, 15:46
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]
Miniaturansicht angehängter Grafiken
kreise_377.png  
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TStringGrid, OnwerDraw, Kreis sieht komisch aus

  Alt 22. Apr 2013, 09:00
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 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