Delphi DBGrid 表格自适应宽度


本文整理自网络,侵删。

 (*// 
标题:数据网格自动适应宽度 
说明:使用DBGrid不可不看 
设计:Zswang 
日期:2002-03-04 
支持:wjhu111@21cn.com 
//*) 

///////Begin Source 
uses 
Math; 

function DBGridRecordSize(mColumn: TColumn): Boolean; 
{ 返回记录数据网格列显示最大宽度是否成功 } 
begin 
Result := False; 
if not Assigned(mColumn.Field) then Exit; 
mColumn.Field.Tag := Max(mColumn.Field.Tag, 
TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText)); 
Result := True; 
end; { DBGridRecordSize } 

function DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 5): Boolean; 
{ 返回数据网格自动适应宽度是否成功 } 
var 
I: Integer; 
begin 
Result := False; 
if not Assigned(mDBGrid) then Exit; 
if not Assigned(mDBGrid.DataSource) then Exit; 
if not Assigned(mDBGrid.DataSource.DataSet) then Exit; 
if not mDBGrid.DataSource.DataSet.Active then Exit; 
for I := 0 to mDBGrid.Columns.Count - 1 do begin 
if not mDBGrid.Columns[I].Visible then Continue; 
if Assigned(mDBGrid.Columns[I].Field) then 
mDBGrid.Columns[I].Width := Max(mDBGrid.Columns[I].Field.Tag, 
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) + mOffset 
else mDBGrid.Columns[I].Width := 
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) + mOffset; 
mDBGrid.Refresh; 
end; 
Result := True; 
end; { DBGridAutoSize } 
///////End Source 

///////Begin Demo 
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
DataCol: Integer; Column: TColumn; State: TGridDrawState); 
begin 
DBGridRecordSize(Column); 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
DBGridAutoSize(DBGrid1); 
end; 
///////End Demo 

相关阅读 >>

Delphi sha1加密函数

Delphi winapi: getforegroundwindow - 获取前台窗口的句柄

Delphi string内存结构

Delphi 键盘记录源代码

Delphi 快捷键设置控件: thotkey

Delphi 获取 cpu 使用率的单元

Delphi 锁定系统解锁系统

Delphi d10.x 并行库ppl编程之 futures

Delphi简单的字符串加密解密函数

Delphi中tframe组件的使用

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...