Hallo,
Ich habe den Code noch etwas angepasst.
So wird nun jede 4. Zeile eine "Fixed Row".
Evtl sind weitere Optimierungen nötig.
Siehe Anhang für Resultat.
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
TempRect: TRect;
begin
if (ARow mod 4 = 0) then
with TStringGrid(Sender) do
begin
TempRect := Rect;
DrawFrameControl(Canvas.Handle, TempRect, DFC_BUTTON, DFCS_BUTTONPUSH);
Canvas.Brush.Color := FixedColor;
Canvas.FillRect(TempRect);
DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, BF_RECT);
Canvas.Brush.Color := clBlack;
with TempRect do
begin
if ACol = ColCount - 1 then
Right := Right
else
Right := Right + 1;
Bottom := Bottom + 1;
Top := Top - 1;
Left := Left - 1;
Canvas.FrameRect(TempRect);
end;
end;
end;