(*//
标题:数据网格自动适应宽度
说明:使用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(数据绑定网格组件)是一种常用的数据可视化工具,它允许开发者将数据库中的记录展示为表格形式。然而,在实际开发过程中,我们经常遇到一个问题:当单元格内的文本长度不一时,单元格的大小可能...
- 自动填充功能可以确保表格的宽度充分利用窗口空间。 20. **从注册表或ini文件中保存或恢复网格和列的层次** - 可以将表格的配置信息保存在注册表或ini文件中,方便以后恢复使用。 #### 二、应用实例 - **编辑...
它继承了Delphi标准DBGrid的功能,并在此基础上增加了许多实用且强大的特性,使得数据的展示更加灵活多样。 #### 二、DBGridEh功能详解 ##### 1. 定制标题行 - **制作复杂标题行**:DBGridEh支持复杂的标题行设计...
4. **自适应宽度**:自动调整组件宽度与客户区域等宽,确保所有数据都能正确显示。 5. **自定义行高**:允许用户设置标题行和数据行的高度,提高数据展示的灵活性。 6. **文本自动折行**:对于过长的文本,支持自动...
- **自适应宽度**:组件能够自动调整其宽度以匹配客户区域的宽度。 - **自定义行高**:允许用户设置标题行、数据行的高度。 - **文本换行**:对于超长的文本,组件支持自动折行处理,避免文本溢出。 - **标题行按钮...
4. **自适应宽度**:自动调整组件宽度以匹配客户区域,保持界面整洁。 5. **行高设置**:可以设置标题行和数据行的高度,以满足不同视觉需求。 6. **文本折行处理**:对于超长的标题行和数据行文本,自动进行折行...