Hi,
Habe dein Prog probiert.
Gibt es bei dir eigentlich keine Fehler wenn man mehrfach auf Spalten clickt?
Delphi-Quellcode:
for i := 0 to grid.Columns.Count -1 do
if Column.Index = i then
s:= grid.Columns[i].FieldName;
q.Close;
q.SQL.Clear;
q.SQL.Add('SELECT * FROM table ORDER BY ' + s);
q.Open;
Ohne persistente
Felder der query werden die Spalten aber noch immer geändert, da die
query geschlossen und neu erstellt wird. Dann greift das dbgrid auf die Felder-Standardbreite zurück. Bei float-feldern wird standardmäßig displaywidth=10 eingestellt. Schau mal im Objektinspector diesen Wert deiner Felder nach.
Setze also im
OI den Wert displaywidth auf die gewünschhte column-breite.
Werner