Delphi xe8 FMX StringGrid根据内容自适应列宽。
网上的资料比较复杂,而且不是根据字体字号等设置列宽。故自己写了个function来用。
function GetColMaxDataLength(ASGrid: TStringGrid): TObject;
var
MaxColLength, //列数据的最大长度
CellLength: Single; //单元格长度
ACol,ARow: Integer;
begin
with ASGrid do
begin
for ACol := 0 to ColumnCount - 1 do
begin
MaxColLength:=Canvas.TextWidth(Columns[ACol].Header);//取列头宽度
for ARow := 0 to RowCount - 1 do
begin
CellLength := Canvas.TextWidth(Cells[ACol,ARow]);//取单元格宽度
if CellLength > MaxColLength then
MaxColLength := CellLength;
end;
Columns[ACol].Width := MaxColLength + 20; //加上一个值调整列宽
end;
end;
end;
应用很简单,一句搞定:
GetColMaxDataLength(StringGrid1);
---------------------
作者:ooooh
版权声明:本文为博主原创文章
Delphi xe8 FMX StringGrid根据内容自适应列宽。
转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
优化大宽表查询性能,揭秘GaussDB(DWS) 谓词列analyze
谓词列通指于 WHERE 条件,join条件,group by中涉及到的列,更广义的是指所有需要用于计划生成需要统计信息列的列。
GaussDB(DWS) analyze 数据库 统计信息 -
Delphi造一个简易迷宫
尝试用Delphi、DFS深度优先搜索算法造一个迷宫,使用DFS实现寻路并展示画出来。
DFS 深度优先搜索 DFS深度优先搜索 -
delphi7 ASQLite在哪delphi7 ASQLite在哪 堆栈 内存空间 Delphi
-
Delphi7 IDEDelphi
-
PCB盲埋孔、通孔与阶梯孔的适配场景
PCB堆叠过孔类型选择指南 PCB堆叠
pcb工艺 制造 捷配 智能手表 汽车电子 -
JavaEE初阶5.0
多线程4.0~
#JavaEE初阶 加锁 多线程 线程安全
















