DBGridEh列宽自动适应内容的简单方法
2024-09-03 08:23:16
///////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
procedure TFm_ReadExcel.FormCreate(Sender: TObject);
begin
inherited;
dbgrideh1.RowHeight:=15;
end;
上述代表需要执行两次OPEN,才能看到效果
最新文章
- Javascript数组算法和技巧总结
- spring mvc拦截器
- Web启动服务器上的某一个服务
- OO的设计原则
- ueditor .NET版本提示uploader、Config类同时存在于两个dll中
- 如何查看Linux操作系统版本
- Android开发随笔3
- PHPCMS(2)PHPCMS V9 环境搭建(转)
- 实现简单的django上传文件
- asp.net中使用forms验证
- 剑指offer-面试题6.重建二叉树
- Delphi中运行时改变panel的位置及大小(通过wm_SysCommand来实现)
- Git管理源代码
- Bootstrap-datepicker3官方文档中文翻译---Event/事件(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
- 利用 Eclipse IDE 的强大功能远程调试 Java 应用程序
- 【ATcoder】Xor Sum 2
- java实现文件上传下载
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
- 20145317彭垚《网络对抗》Exp6 信息搜集与漏洞扫描
- 使用Mininet创建网络拓扑