Hallo #,
ich benutze das TAdvStringGrid.
Mit
Grid.Colors[1,1]:= clRed
kann ich je bequem auf Zelle eine Farbe setzen.
Dumm nur, dass bei RowSelect die komplette Zeile mit Grid.SelectionColor überschrieben wird.
Ich möchte aber, dass meine
eine Zelle trotz der Markierung der Zeile rot bleibt.
#Update:#
hmmm
Lösung mit OnDrawCell.
Delphi-Quellcode:
procedure TForm1.Grid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol=3) and
(ARow=3) then
begin
Grid1.Canvas.Font.Color:= clRed;
if ARow=Grid1.Row then
begin
Grid1.Canvas.Brush.Color:= Grid1.SelectionColor;
end
else
begin
Grid1.Canvas.Brush.Color:= Grid1.Color;
end;
Grid1.Canvas.FillRect(Rect);
Grid1.Canvas.TextOut(Rect.Left+3, Rect.Top+3, Grid1.Cells[ACol,ARow]);
end;
end;
Schön wäre es aber, wenn es auch mit
Colors[] funktionieren würde.
Wie mache ich das ?
Danke
Heiko