je später der Abend umso einfacher die Lösung...grins.
Dank dem Ansatz von Markus und vielen vielen Lösungsversuchen habe ich es hin bekommen. ob das so die schönste und eleganteste Lösung weiß ich nicht. Aber es geht.
man verschiebt einfach vor dem FillRect den Rect.Left nach links und schon füllt er weiter aus.....
Danke nochmals für eure Hilfe.
Hier nochmal der Code:
Delphi-Quellcode:
procedure Tm_settings.tab_visu_settingsDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
gr : TStringGrid;
begin
gr := (Sender as TStringGrid);
if not odd(aCol) and not (gdFixed in State) then begin
gr.Canvas.Brush.Color := TColor($D9D9C0);
Rect.Left := Rect.Left - 4;
gr.Canvas.FillRect(Rect);
gr.Canvas.TextOut(Rect.Left + 3, Rect.Top + 4, gr.Cells[ACol, ARow]);
end;
if (ARow = 5) then begin
gr.Canvas.Brush.Color := TColor($FFCC99);
Rect.Left := Rect.Left - 5;
gr.Canvas.FillRect(Rect);
gr.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, gr.Cells[ACol, ARow]);
end;
end;
Und noch einen finalen Screenshot: