——此文章摘自《Delphi开发经验技巧宝典》定价
¥
特价
¥
购买>>http://track
linktech
cn/?m_id=dangdang&a_id=A
&l=
&l_type
=
width=
height=
border=
nosave>
DBGrid表格列的宽度是根据所连接的字段的长度来决定的由于设计字段长度的时候留有足够长的空间因此通常情况下在表格显示数据的时候表格的列宽很大大部分都是空白处这样在浏览数据的时候很不方便为了避免这一情况可以考虑根据数据实际数据长度来自动调整表格的宽度如图所示
http://developcsaicn/delphi/images/jpg>
图 根据表格中数据长度自动调整表格宽度
在自动设置表格宽度文本框中获取每个字段实际使用的最大字节数然后设置DBGrid表格列的FieldDisplayWidth属性来根据实际字段长度自动调整表格宽度主要代码如下
procedure TFrmOrderByBtnOrderClick(Sender: TObject);
var
i: integer;
fieldname: string;
begin
with AQuery do
begin
Close;
SQLClear;
SQLAdd(SELECT max(datalength(id)) AS id );
SQLAdd(max(datalength(number))AS number);
SQLAdd(max(datalength(name))AS name);
SQLAdd(max(datalength(old))AS old);
SQLAdd(max(datalength(sex))AS sex);
SQLAdd(max(datalength(telephone))AS telephone);
SQLAdd(max(datalength(department))AS department);
SQLAdd(max(len(joindate))AS joindate);
SQLAdd(FROM TB_Worker);
Open;
end;
for i := to DBGListColumnsCount do
begin
fieldname := DBGListColumns[i]FieldFieldName;
DBGListColumns[i]FieldDisplayWidth := AQueryFieldByName(fieldname)AsInteger;
end;
end;