`
woxiaoe
  • 浏览: 287021 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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中dbgrid大小

    在Delphi中,DBGrid(数据绑定网格组件)是一种常用的数据可视化工具,它允许开发者将数据库中的记录展示为表格形式。然而,在实际开发过程中,我们经常遇到一个问题:当单元格内的文本长度不一时,单元格的大小可能...

    DELPHI 表格控件DBGridEh使用详解 .pdf

    - 自动填充功能可以确保表格的宽度充分利用窗口空间。 20. **从注册表或ini文件中保存或恢复网格和列的层次** - 可以将表格的配置信息保存在注册表或ini文件中,方便以后恢复使用。 #### 二、应用实例 - **编辑...

    表格控件DBGridEh

    它继承了Delphi标准DBGrid的功能,并在此基础上增加了许多实用且强大的特性,使得数据的展示更加灵活多样。 #### 二、DBGridEh功能详解 ##### 1. 定制标题行 - **制作复杂标题行**:DBGridEh支持复杂的标题行设计...

    DBGRIDEH 用法指南

    4. **自适应宽度**:自动调整组件宽度与客户区域等宽,确保所有数据都能正确显示。 5. **自定义行高**:允许用户设置标题行和数据行的高度,提高数据展示的灵活性。 6. **文本自动折行**:对于过长的文本,支持自动...

    Ehlib使用大全

    - **自适应宽度**:组件能够自动调整其宽度以匹配客户区域的宽度。 - **自定义行高**:允许用户设置标题行、数据行的高度。 - **文本换行**:对于超长的文本,组件支持自动折行处理,避免文本溢出。 - **标题行按钮...

    DBGridEh开发使用攻略

    4. **自适应宽度**:自动调整组件宽度以匹配客户区域,保持界面整洁。 5. **行高设置**:可以设置标题行和数据行的高度,以满足不同视觉需求。 6. **文本折行处理**:对于超长的标题行和数据行文本,自动进行折行...

Global site tag (gtag.js) - Google Analytics