CSDN首页 | 新闻聚焦 | 共享软件 | 俱乐部 | 开发文档 | 专家门诊 | 招聘求职 | Linux园地 | 程序员杂志
--------------------------------------------------------------------------------
我要回复 | 我感兴趣 | 打印贴子 | 推荐给朋友 | 关闭窗口
主 题:如何让DBgrid的列宽度自动适应字段的实际字符宽度,不是字段的宽度
作 者:matrix2000
所属论坛:Delphi
问题点数:50
回复次数:8
发表时间:2001-11-22 22:18:27
我的字段挺长的,30个字符,但更多的时候才几个汉字,如何如何让DBgrid的列宽度自动适应字段的实际字符宽度,如果需要自己设定,那么如何能够得到实际字符的宽度。谢谢
回复贴子:
回复人: hyl_1978(约定) (2001-11-22 22:28:11) 得10分
如果你用的是永久性字段,可以将displaywidth改小一点;
如果直接再dbgrid中设计,可以在窗体上将dbgrid的列宽度拉小一点。
回复人: zswang(伴水)(伤心中) (2001-11-22 22:29:08) 得40分
Canvas.TextWidth
回复人: zswang(伴水)(伤心中) (2001-11-22 22:33:18) 得0分
网格重画的时候保留字段显示的大小
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
///////Begin 保留
if XXX[Column.Field.Index] < Canvas.TextWidth(Column.Field.DisplayText) then
XXX[Column.Field.Index] := Canvas.TextWidth(Column.Field.DisplayText);
///////End 保留
end;
回复人: Snakeguo(枫) (2001-11-22 22:35:27) 得0分
^
回复人: zswang(伴水)(伤心中) (2001-11-22 22:35:37) 得0分
已经提供你思路
我就是这样做的
余下的我就不说
你自己试发挥吧
回复人: matrix2000(动感超人) (2001-11-24 12:59:19) 得0分
对了,伴水,XXX[Column.Field.Index]是指的谁?是Dbgrid吗?
回复人: matrix2000(动感超人) (2001-11-24 13:55:47) 得0分
伴水兄: XXX[Column.Field.Index] 是什么?
回复人: zswang(伴水)(伤心中) (2001-11-24 14:17:29) 得0分
XXX: array of Integer;SetLength(Table1.FieldList.Count);
--------------------------------------------------------------------------------
我要回复:(请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德)
如果你只是觉得这个贴子好,而没想留言的话,请点击后面的贴子提前连接。
返回问题 | 关闭窗口
美达美简介 广告服务 英语步步高 程序员大本营 百联美达美科技有限公司 版权所有
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货