如何固定DBGridEh的初始列宽?

程晨c 2008-02-15 10:05:20
我使用了DBGridEh,在设计窗体时为每一列宽确定了宽度,但是程序运行后,列宽就发生了变化(可能与数据库有关吧),请问如何才能固定初始时候的默认列宽?(如果用户想改变列宽可以手动拖动)
...全文
511 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
softheaded 2008-02-18
  • 打赏
  • 举报
回复
同意jozosoft 的说法
设计时确定了dbgridEh各列对应的数据集的字段,然后用鼠标拖动各列的宽度,应该就可以了
wxsan 2008-02-18
  • 打赏
  • 举报
回复
有2个办法可以解决:

1、在打开数据集或执行过查询后动态设置列的宽度,代码如下:
var
I:Integer;
For I := 0 to Dbgrid.Columns.count-1 do
begin
Dbgrid.Columns[I].width := 需要设置的宽度;
Dbgrid.Columns[I].Title.Alignment := taCenter; // 列头居中
end;

2、以最优化的方法显示列宽,不会浪费一点空间,代码如下:
var
I:Integer;
For I := 0 to Dbgrid.Columns.count-1 do
begin
Dbgrid.Columns[I].OptimizeWidth;
end;
程晨c 2008-02-16
  • 打赏
  • 举报
回复
回复jozosoft :
请说具体些。
我目前已经在设计时确定了dbgridEh各列对应的数据集的字段。
jozosoft 2008-02-16
  • 打赏
  • 举报
回复
在设计时把字段加进DBGridEh里
程晨c 2008-02-15
  • 打赏
  • 举报
回复
回复Dreamnest :
问题是这样的,DBGridEh上有好多列,在设计时,有得列拖动列宽后可以在运行时反映出来,有些列则拖动列宽后运行时无效。

Dreamnest 2008-02-15
  • 打赏
  • 举报
回复
DBGridEh有个方法RestoreColumnsLayoutIni与SaveColumnsLayoutIni可以将各列的属性读入或保存在Ini文件里的,

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧