▲100分求DBgridEh的两个问题,回复有分▲

jkoala 2003-06-17 10:32:06
各位,
我用dbgrideh控件,现需要解决两个问题:
1。数据源为一个ADOquery,数据动态生成,例如通过几张表联合查询,请问,在显示时我如何让grid能自动调整宽度,而不时根据表结构的宽度来显示,这样很不美观。
2。我实现的按grid标题栏排序功能,但如果查询的记录集字段很多,我右移动到后面的字段,当点击标题栏排序后,grid又回到前面了,我希望grid不刷新。
我的数据是动态查询生成的,我也不知道数据集的每个字段的长度,即使可以设置


以上两个问题我在论坛都查了,没有找到解答,希望各位大侠帮帮我,分不够再加!

...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
risingsoft 2003-06-21
  • 打赏
  • 举报
回复
1、循环提取该列字段最大长度,重新修改DBGRID列宽度
2、这是不可能实现的,除非你动态改变各个字段的查询位置
CsdnKey 2003-06-21
  • 打赏
  • 举报
回复
同意2
1:
我的方法:
找出全部(或着当前Grid显示的全部内容)记录字段最长内容,
然后
Grid.Columns[i].Width :=Grid.Canvas.TextWidth(‘字段内容’)+5
blueshu 2003-06-21
  • 打赏
  • 举报
回复
同意2
1不是好方法
noil0125 2003-06-21
  • 打赏
  • 举报
回复
学习
bbs791109 2003-06-21
  • 打赏
  • 举报
回复
1﹑假設所有字段長度之和為N,dbgrideh的寬度為M。
字段field1.displaywidth:=field1.displaywidth/N*M;
field2.displaywidth:=field.displaywidth/N*M
....
2﹑同意樓上
pankun 2003-06-21
  • 打赏
  • 举报
回复
来晚了,学习一下~
windindance 2003-06-17
  • 打赏
  • 举报
回复
1
for i:=0 to DBGrid.Columns.Count-1 do
with DBGrid.Columns[i] do
if Width >120 then Width := 120;
2
s:string;
s := Query.Bookmark;
Sort;
Query.Bookmark := s;
goldencity 2003-06-17
  • 打赏
  • 举报
回复
同意:windindance(风舞轻扬)

5,388

社区成员

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

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