Hola.
Si lo que buscas es autoajustar las columnas del
TDBGrid, probá con este procedimiento:
Código Delphi
[-]
procedure AdjustColumnsWidth(ADBGrid: TDBGrid);
const
SEP = 10;
var
Temp, i: Integer;
LongMax: array [0..30] of Integer;
begin
with ADBGrid do
begin
Canvas.Font := Font;
for i := 0 to Columns.Count - 1 do
LongMax[i] := Canvas.TextWidth(Fields[i].FieldName) + SEP;
DataSource.DataSet.First;
while not DataSource.DataSet.EOF do
begin
for i := 0 to Columns.Count - 1 do
begin
Temp := Canvas.TextWidth(trim(Columns[i].Field.DisplayText)) + SEP;
if Temp > LongMax[i] then LongMax[i] := Temp;
end;
DataSource.DataSet.Next;
end;
DataSource.DataSet.First;
for i := 0 to Columns.Count - 1 do
if LongMax[i] > 0 then
Columns[i].Width := LongMax[i];
end;
end;
Llamada de ejemplo:
Código Delphi
[-]
begin
AdjustColumnsWidth(DBGrid1);
...
Saludos.