Folgender Code färbt jede zweite Zeile eines StringGrids ein.
Wenn RowSelect = False ist wird die Zelle die den Fokus besitzt in Blau dargestelle.
Das sollte dan eigentlich an alle anderen Grids angepasst werden können.
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol > 0) and (ARow > 0) then
begin
with (Sender as TStringGrid) do
begin
if ((ARow mod 2) = 0) then //jede zweite Zeile berücksichtigen
begin
if (not (gdSelected in State)) then
begin
Canvas.Brush.Color := clGreen; //Farbe die jede zweite Zeile bekommen soll.
Canvas.FillRect(Rect);
end;
end;
if ((not (goRowSelect in Options)) and (gdFocused in State)) then //Wenn RowSelect = False die aktive Zelle blau färben
begin
Canvas.Brush.Color := clBlue; //Farbe der selektierten Zelle wenn RowSelect = False;
Canvas.FillRect(Rect);
end;
Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, StringGrid1.Cells[ACol, ARow]); //Denn Text in der Zelle ausgeben
end;
end;
end;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
Stephan B.
"Lasst den Gänsen ihre Füßchen"