Stringgrid (Zelle beim klick markieren)

Online-Skater

Erfahrenes Mitglied
Hi

Problem:

Ich möchte beim klick in eine Zelle das sich die Zelle färbt oder zumindestens anders aussieht als die anderen... (z.B. Rechteck rüberlegen)
Ich habe ein Stringgrid mit der zellenbreite 8*8 von einem 50*50 Feld dort sehen alle bisherigen mir bekannten Zeichen doof aus (zu wenig ausgefüllt)

Code:
procedure TForm1.FeldSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
 if Feld.Cells[ACol,ARow] <> '#' then
   begin
     Feld.Cells[ACol,ARow] := '#';
     life[ACol,ARow] := true;
   end
 else
   begin
     Feld.Cells[ACol,ARow] := '';
     life[ACol,ARow] := false;
   end;
end;

Wäre gut wenn diese procedure benutzt wird aber wäre für lösungsansäze dankbar :)
 
Zuletzt bearbeitet:
danke für die antwort nur muss man ja rect() mit 4 werten füllen und dann ist es ja so, das wenn ich uf ein feld klicke irgendwo ein rechteck gezeichnet wird aber nicht genau aud dieses feld sondern auf den koordinaten.

entweder man brauch ne hyperkomplizierte procedure (selber schrieben)
oder es muss was geben das ich mit FeldSelect verwenden kann, jedes GoL Spiel hat sowas das muss irgendwie gehn

thx trotzdem
 
so schwer ist das gar nicht, du bekommst ja alle relevanten Daten vom System

Code:
procedure TForm1.feldDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringgrid do
  begin
    WITH Canvas DO
    BEGIN
      if Cells[ACol,ARow] = '#' then
        Brush.Color := clred
      else
        Brush.Color := clblue;
      FillRect(Rect);
      TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]);
    END;
  end;
end;
Einfach in das OnDrawCell des Stringgrids einfügen und schon macht es was du willst. Steht ein # im Feld wird das Feld rot alle anderen sind blau.
 
hehe danke schöön der code ist zwar verständlich nur würde ich darauf nicht kommen denn ich wusste nicht das diese procedure ständig weiderholt wird und nach dem klick erst auftritt und solche sachen wüsste ich nicht. Die lösung reicht für mein prob Vielen Dank kann mir aber nicht vorstellen das es z.b.http://www.math.com/students/wonders/life/life.html auch so ähnlich gemacht ist.

naja kann mir nur schwer vorstellen das es dafür keine funktion gibt :eek:

thx
 

Neue Beiträge

Zurück