Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   DrawGrid & Canvas (https://www.delphipraxis.net/160733-drawgrid-canvas.html)

twityzuz 28. Mai 2011 18:59

DrawGrid & Canvas
 
Hi Leute!

Ich habe die Komponente Drawgrid auf eine Form gezogen. Jetzt zeichne ich ein Kreis in eine Zelle:

Delphi-Quellcode:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
Drawgrid1.Canvas.Brush.Color:=clred;
Drawgrid1.Canvas.Ellipse(ACol*100,ARow*100,(ACol+1)*100,(ARow+1)*100); {eine Zelle ist 100*100 Pixel groß.}
end;
Mein Problem: Sobald ich das Programm starte, sind in jeder Zelle die roten Kreise. Wie schaffe ich es, dass, wenn ich z.B. auf die Zelle (0,0) klicke, dass auch nur in der Zelle (0,0) ein roter Kreis erscheint?

Aphton 28. Mai 2011 21:03

AW: DrawGrid & Canvas
 
Delphi-Quellcode:
if (ARow = 0) and (ACol = 0) then
Drawgrid1.Canvas.Ellipse(...)
Und statt auf 0 zu prüfen, solltest du prüfen, obs dem Ausgewählten Column gleicht! (Bei Mousedown die Position dementsprechend speichern)

jaenicke 29. Mai 2011 06:40

AW: DrawGrid & Canvas
 
Zitat:

Zitat von Aphton (Beitrag 1103474)
Und statt auf 0 zu prüfen, solltest du prüfen, obs dem Ausgewählten Column gleicht! (Bei Mousedown die Position dementsprechend speichern)

Nein, bitte nicht, mach es lieber gleich richtig...

Es gibt extra den Parameter State, in dem genau steht, ob die Zelle ausgewählt ist usw., d.h. es reicht entsprechend des Wertes dieses Parameters die Zelle zu zeichnen.


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