Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Felder in Stringgrid färben (https://www.delphipraxis.net/42033-felder-stringgrid-faerben.html)

PaKir 12. Mär 2005 12:56


Felder in Stringgrid färben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
also das mit dem Färben an sich ist nicht das Problem nur will ich, dass die Felder bei Rechtsklick Aus(Schwarz) und bei Linksklick An(Rot) werden. Im Moment hab ich das noch so gelöst, das alles über die linke Maustaste geht und wenn Feld = An dann Feld = Aus und andersrum. Wie kann ich das also machen? Wenn ich die Maustaste bei MouseDown auslese und dann dadurch die Farbe bestimmen lasse kann man nicht mehr durch gedrückthalten der Maustaste mehrere Felder färben sondern immer nur eins.
Hoffe ihr habt mein Problem verstanden.

Sieht im Moment so aus.
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);
end;

sniper_w 12. Mär 2005 13:53

Re: Felder in Stringgrid färben
 
Delphi-Quellcode:
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;
Hmm...Warum nicht so:
Delphi-Quellcode:
procedure TForm1.stringgrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  matrix[acol,arow] := not matrix[acol,arow];
end;

PaKir 12. Mär 2005 14:42

Re: Felder in Stringgrid färben
 
ja ok, aber das ist ja nicht mein Problem.


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