DBGridEh列宽自动适应内容的简单方法
///////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;
DBGridEh列宽自动适应内容的简单方法的更多相关文章
- saiku导出excel单元格格式与中文列宽自动适应
在saiku导出excel后打开发现单元格的整数也显示为小数,并且含有中文的列宽没有自动适应,解决办法如下: 打开ExcelWorksheetBuilder.java文件,找到applyCellFor ...
- 纯css实现div三列等高布局的最简单方法简化版/也可以多列
使用正padding和负margin对冲实现多列布局方法 这种方法很简单,就是在所有列中使用正的上.下padding和负的上.下margin,并在所有列外面加上一个容器,并设置overflow:hid ...
- 关于web开发中订单自动超时和自动收货的简单方法(window server)
最近做一个订单自动超时和自动收货的功能,因为以前是用的mysql 存储过程和定时器来完成,这次的业务逻辑相对复杂用以前的方式就不太合适,本来是准备使用定时执行php脚本来实现的,后来发现业务逻辑中使用 ...
- Java 设置Excel自适应行高、列宽
在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定 ...
- (几乎)完美实现 el-table 列宽自适应
背景 Element UI 是 PC 端比较流行的 Vue.js UI 框架,它的组件库基本能满足大部分常见的业务需求.但有时候会有一些定制性比较高的需求,组件本身可能没办法满足.最近在项目里就碰到了 ...
- MS WORD 表格自动调整列宽,自动变漂亮,根据内容自动调整 .
在MS WORD中,当有大量的表格出现时,调整每个表格的的高和宽和大小将是一件非常累的事情,拖来拖去,非常耗时间,而且当WORD文档达到300页以上时,调整反应非常的慢,每次拖拉线后,需要等待一段时间 ...
- 关于OpenXml SpreadSheet列宽根据内容的Auto-suitability
因为之前接到的一个需求,让excel的宽度自动适应.所以最近一直在看Excel相关内容,从结构到.net的两个类库OpenXml和Office.Interop.Excel,再到一些具体的使 ...
- 【Qt开发】QTableWidget设置根据内容调整列宽和行高
QTableWidget要调整表格行宽主要涉及以下一个函数 1.resizeColumnsToContents(); 根据内容调整列宽 ...
- MS WORD 表格自己主动调整列宽,自己主动变美丽,依据内容自己主动调整
在MS WORD中,当有大量的表格出现时,调整每一个表格的的高和宽和大小将是一件很累的事情,拖来拖去,很耗时间,并且当WORD文档达到300页以上时,调整反应很的慢,每次拖拉线后,须要等待一段时间其才 ...
随机推荐
- tomcat下载与安装
https://www.cnblogs.com/limn/p/9358657.html
- Codeforces Round #564 (Div. 1)
Codeforces Round #564 (Div. 1) A Nauuo and Cards 首先如果牌库中最后的牌是\(1,2,\cdots, k\),那么就模拟一下能不能每次打出第\(k+i\ ...
- Reborn & Recover
高考总算是结束了 而我们的旅程却还在继续 现在姑且是个ACMer(暂定) 而我已经将近一年没写代码了 接下来是全新的开始 全新的学校 全新的未来 总之从现在开始 试着努力看看吧!
- PTA 阶乘之和取模
阶乘之和取模 (25 分) 输入正整数n, 计算S = 1!+2!+...+n!的末6位(不含前导0). 这里1<=n<=109. 输入样例: 例如输入: 20 输出样例: 输出: ...
- 【知识库】-数据库_MySQL 的七种 join
掘金作者:haifeisi 文章出处: MySQL 的七种 join Learn [已经过测试校验] 一.内连接 二.左外连接 三.右外连接 四.左连接 五.右连接 六.全连接 七.两张表中都没有出现 ...
- Vue_(组件通讯)父子组件简单关系
Vue组件 传送门 在Vue的组件内也可以定义组件,这种关系成为父子组件的关系 如果在一个Vue实例中定义了component-a,然后在component-a中定义了component-b,那他们的 ...
- C++入门经典-类成员的可访问性,继承后的可访问性
1:关键字public.private.protected说明类成员是共有的.私有的,还是保护的.这3个关键字将类划分为3个区域,在public区域的类成员可以在类作用域外被访问,而private区域 ...
- PHP AJAX返回 "TEXT"
例子:通过AJAX间接访问数据库,查出Nation表显示在页面上,并添加删除按钮 //首先在外层添加一个按钮,并造好表头 <div><input type="button& ...
- Mysql 纪录用户操作日志
有时,我们想追踪某个数据库操作记录,如想找出是谁操作了某个表(比如谁将字段名改了). 二进制日志记录了操作记录,线程号等信息,但是却没有记录用户信息,因此需要结合init-connect来实现追踪. ...
- SQLServer 简单数据拆分
--1. 旧的解决方法(sql server 2000) create table tb(id int,value varchar(30)) insert into tb values(1,'aa ...