Warum, sollte Autosize Dir nicht helfen??
In folgendem Beispiel gehe ich mal davon aus daß colwith und rowheigth immer gleich sind, ansonsten halt drüberlaufen und rechnen:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if StringGrid1.width<(StringGrid1.colcount*(StringGrid1.Defaultcolwidth + 1) + 4) then
StringGrid1.width:=(StringGrid1.colcount*(StringGrid1.Defaultcolwidth + 1) + 4);
if StringGrid1.Height<(StringGrid1.Rowcount*(StringGrid1.DefaultRowHeight + 1) + 4) then
StringGrid1.Height:=(StringGrid1.Rowcount*(StringGrid1.DefaultRowHeight + 1) + 4)
end;