AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi canvas.fillrect(rect); funktioniert nicht.
Thema durchsuchen
Ansicht
Themen-Optionen

canvas.fillrect(rect); funktioniert nicht.

Ein Thema von anarkids · begonnen am 12. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
anarkids

Registriert seit: 7. Apr 2006
Ort: Braunschweig
22 Beiträge
 
Delphi 2006 Architect
 
#1

canvas.fillrect(rect); funktioniert nicht.

  Alt 12. Apr 2006, 13:47
Moin!

Man sieht ja öfters hier im Forum, dass jemand gern wissen würde, wie man eine bestimmte Zelle eines Stringgrids einfärbt. Dabei kommt dann oft sowas hier raus:
Delphi-Quellcode:
var matrix : array [0..17,0..7] of boolean;

procedure TForm1.stringgrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if matrix[acol,arow] = false then
    matrix[acol,arow] := true
  else matrix[acol,arow] := false;
end;

procedure TForm1.stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
case matrix[acol,arow] of
    false: stringgrid1.Canvas.brush.color:= clblack;
    true : stringgrid1.Canvas.brush.color:= clred;
  end;
  stringgrid1.Canvas.fillrect(rect); //genau das funktioniert bei mir nicht
end;
Aus irgendeinem Grund funktioniert der oben auskommentierte Befehl nicht. Ich bekomme so eine Fehlermeldung:
Es gibt keine überladene Version von 'Rect', die man mit diesen Argumenten aufrufen kann.

mfg...
Mr.D
Change begins with you - today!
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 12. Apr 2006, 13:51
Delphi-Quellcode:
var matrix : array [0..17,0..7] of boolean;

procedure TForm1.stringgrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  //besser
  matrix[acol,arow] := not matrix[acol,arow];
end;

procedure TForm1.stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  ARect: TRect; State: TGridDrawState);
begin
  //besser
  if matrix[acol,arow] then Stringgrid1.Canvas.brush.color:= clred
                       else stringgrid1.Canvas.brush.color:= clblack;
  stringgrid1.Canvas.fillrect(Arect); //genau das sollte jetzt klappen
end;
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
anarkids

Registriert seit: 7. Apr 2006
Ort: Braunschweig
22 Beiträge
 
Delphi 2006 Architect
 
#3

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 07:37
hi und guten morgen,

danke für die antwort, aber wie rufe ich diese procedures jetzt auf?

mfg,
anarkids
Mr.D
Change begins with you - today!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 07:44
Im OI doppelt in das Ereignis klicken, Delphi erstellt den Prozedurrumpf selber und wenn OwnerDraw auf true steht wird sie automatisch aufgerufen, wenn das Grid neugezeichnet werden muss.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
anarkids

Registriert seit: 7. Apr 2006
Ort: Braunschweig
22 Beiträge
 
Delphi 2006 Architect
 
#5

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:26
danke für die schnelle antwort Lucky!

Nun bekomme ich allerdings eine Exception.
Mr.D
Change begins with you - today!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:33
Wer ist Lucky?

Zitat von anarkids:
Nun bekomme ich allerdings eine Exception.
Ah ja. Und nun? Ohne eine nähere Beschreibung, wo und warum du sie bekommst kann man dir wohl nicht helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:33
Glaskugel kaputt Welche
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
anarkids

Registriert seit: 7. Apr 2006
Ort: Braunschweig
22 Beiträge
 
Delphi 2006 Architect
 
#8

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:37
okai sorry.

Im Projekt Monit.exe ist eine Exception der Klasse EReadError mit der Meldung 'Ungültiger Eigenschaftswert' aufgetreten.

*grummel* Hab alles so übernommen, wie's mir vorgeschlagen wurde
Mr.D
Change begins with you - today!
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:38
in welcher Zeile
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
anarkids

Registriert seit: 7. Apr 2006
Ort: Braunschweig
22 Beiträge
 
Delphi 2006 Architect
 
#10

Re: canvas.fillrect(rect); funktioniert nicht.

  Alt 13. Apr 2006, 08:42
also direkt bei der Benachrichtigung über die Debugger-Exception steht nix von ner Zeile.

Wenn ich auf Anhalten klicke, dann wird Zeile 14 von Monit.exe markiert: Application.Run;
Mr.D
Change begins with you - today!
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:02 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