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页以上时,调整反应很的慢,每次拖拉线后,须要等待一段时间其才 ...
随机推荐
- luogu3812 【模板】线性基
Code: #include <cstdio> #include <algorithm> #define ll long long #define N 64 #define s ...
- Hibernate 5 开始使用指南前言
同时在面向对象软件和关系型数据库进行工作,可能会非常复杂和费时.数据在对象和数据库之间可能会不一致,然后导致开发成本会非常高. Hibernate 是一个针对 Java 环境的对象关系映射(Objec ...
- 9.一次简单的Web作业
Web作业 <!DOCTYPE html> <!-- 作业描述:由于引用了JQuery库,所以请在联网的时候打开该页面. 本次作业是在上次作业的基础上的进一步完善,上次作业页面预留的 ...
- FZU - 2218 Simple String Problem 状压dp
FZU - 2218Simple String Problem 题目大意:给一个长度为n含有k个不同字母的串,从中挑选出两个连续的子串,要求两个子串中含有不同的字符,问这样的两个子串长度乘积最大是多少 ...
- vue中单选框与多选框的实现与美化
我们在做一些页面时,可能会用到很多的单选框和复选框,但是原生的radio和checkbox前面的原型图标或方框样式不尽人意.于是,决定自己来实现单选框和复选框.我用的是vue,所以就用vue的方式实现 ...
- axios的post请求方式,怎么把参数直接加在URL后面,不用payload
export const delUser = (id) => { return axios.post("/user/remove", null, { params:{ id, ...
- Zookeeper 安装及命令行操作
[参考文章]:[分布式]Zookeeper使用--命令行 [参考文章]:zookeeper的数据模型 [参考文章]:zookeeper ACL使用 1. 安装包下载 官方下载地址 选择一个具体的版本进 ...
- PHP ob_get_level嵌套输出缓冲
PHP的输出缓存是可以嵌套的.用ob_get_level()就可以输出嵌套级别. 测试发现在cli和浏览器下输出结果不一样(PHP5.4). ob_level1.png手册说明如下: ob_get_l ...
- While 循环 kotlin(11)
While 循环while 和 do .. while 照常使用 while (x > 0) { x--} do { val y = retrieveData()} while (y != nu ...
- javascript之DOM(Document Object Model) 文档对象模型
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...