Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: StringGrid einfärben

  Alt 9. Nov 2007, 15:04
Herzlich willkommen in der Delphi-PRAXiS, c.Stetter.

Deine Code-Zeilen stammen doch aus dem OnDrawCell-Handler, oder? Dort werden dir schon die Zell-Koordinaten (ACol, ARow) übermittelt. Du kannst mit einer Abbildungsfunktion arbeiten oder das CASE-Konstrukt direkt im Event-Handler reinschreiben:

Delphi-Quellcode:
function LookupColor(index: Integer): TColor;
begin
  case index of
    0..4: Result := clRed;
    5..9: Result := clBlue;
    else
      if Odd(index)
        then Result := clGreen
        else Result := clWhite;
  end;
end;

procedure TMainForm.grd_SpieleDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with (Sender as TJVStringGrid) do
  begin
    Canvas.Brush.Color := LookupColor(ARow);
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
  end;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat