Dostosowywanie szerokosci kolumn zalatwia taka procedurka
procedure Ustaw_dlugosc_siatki(DBGrid: TDBgrid);
const
dodatkowa_dlugosc = 10;
var
pomoc, n: Integer;
max_dlugosc: array [0..30] of Integer;
begin
with DBGrid do
begin
Canvas.Font := Font;
//zapamiętanie długości napisów w tytułach kolumn
for n := 0 to Columns.Count - 1 do
max_dlugosc[n] := Canvas.TextWidth(Fields[n].FieldName) + dodatkowa_dlugosc;
DataSource.DataSet.First;
//jeśli pole jest dłuższe niż długość kolumny, to ustawiamy nowy max_dlugosc
while not DataSource.DataSet.EOF do
begin
for n := 0 to Columns.Count - 1 do
begin
pomoc := Canvas.TextWidth(trim(Columns[n].Field.DisplayText)) +
dodatkowa_dlugosc;
if pomoc > max_dlugosc[n] then max_dlugosc[n] := pomoc;
end;
DataSource.DataSet.Next;
end;
//ustawiamy nową szerokość kolumn
DataSource.DataSet.First;
for n := 0 to Columns.Count - 1 do
if max_dlugosc[n] > 0 then
Columns[n].Width := max_dlugosc[n];
end;
end;
chyba dasz radę sobie z wywołaniem