在“自动设置表格宽度”文本框中获取每个字段实际使用的最大字节数,然后设置DBGrid表格列的Field.DisplayWidth属性来根据实际字段长度自动调整表格宽度,主要代码如下: procedure TFrmOrderBy.BtnOrderClick(Sender: TObject); var i: integer; fieldname: string; begin with AQuery do begin Close; SQL.Clear; SQL.Add('SELECT max(datalength(id)) AS id ,'); SQL.Add('max(datalength(number))AS number,'); SQL.Add('max(datalength(name))AS name,'); SQL.Add('max(datalength(old))AS old,'); SQL.Add('max(datalength(sex))AS sex,'); SQL.Add('max(datalength(telephone))AS telephone,'); SQL.Add('max(datalength(department))AS department,'); SQL.Add('max(len(joindate))AS joindate'); SQL.Add('FROM TB_Worker'); Open; end; for i := 0 to DBGList.Columns.Count - 1 do begin fieldname := DBGList.Columns[i].Field.FieldName; DBGList.Columns[i].Field.DisplayWidth := AQuery.FieldByName(fieldname).AsInteger; end; end;