Hola tiammat.
Proba de este modo:
Código Delphi
[-]
procedure TForm1.AjustarColumna(aStringGrid: TStringGrid; aDataSet: TDataSet; const aCol: Integer);
var
i, MaxSize: Integer;
begin
aStringGrid.RowCount := aDataSet.FieldCount + 1;
MaxSize := 0;
for i := 0 to aDataSet.Fields.Count-1 do
if Canvas.TextWidth(aDataSet.Fields[i].DisplayLabel) > MaxSize then
MaxSize := Canvas.TextWidth(' '+UpperCase(aDataSet.Fields[i].DisplayLabel)+' ');
aStringGrid.ColWidths[aCol]:= MaxSize;
for i := 0 to aDataset.Fields.Count-1 do
aStringGrid.Cells[aCol, i+1] := aDataSet.Fields[i].DisplayLabel;
end;
Llamada de ejemplo:
Código Delphi
[-]
AjustarColumna(StringGrid1, IBDataSet1, 0);
Saludos.