Grid.Columns[i].Width:=q.Fields[i].AsSingle * KonstanterFaktor;
Meine Variable KonstanterFaktor sollte die Breite eines Buchstabens repräsentieren, wobei das so gedacht ist, dass es entweder die Durchschittsbreite (die man irgendwie erechnen müsste) oder eine Maximalbreite (Breite von Buchstabe "W"?) um auf der sicheren Seite zu sein. Und natürlich abhängig von der Schriftart/-größe änderbar.
Das mit "Max(Length(Feld1)) as F1" macht natürlich nur bei String-Feldern Sinn, aber die sind es auch, die den meisten Ärger verursachen. Datum und Zahl-Felder sind meist nicht so übertrieben breit.
Ich werd mal versuchen ein Beispiel-
Unit zu bauen und hochzuladen.