|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
|
2004/3/20 10:20:59 |
标题: |
请高手帮忙!关于DELPHI的DBGrid的列宽问题. |
浏览:1309 |
|
加入我的收藏 |
楼主: |
如何能通过简短的几行代码,实现以下功能呢: 双击DBGrid的列表头,该列就会自动按照列中内容的多少来调整宽度呢? 效果就如WINDOWS的资源管理器的列表一样.
----------------------------------------------
- |
作者: |
|
2004/3/20 10:36:38 |
1楼: |
如果高手知道很复杂才能办到的话,也回贴说一下"很难",只免我在苦等!
----------------------------------------------
-
|
作者: |
zizii (高高高级馒头) |
★☆☆☆☆ |
-
|
神秘会员 |
|
2004/3/20 10:44:56 |
2楼: |
columns.width := canvas.textwidth('000'); 没测试,随便写的。
----------------------------------------------
维护世界和平,共创美好盒子。
|
作者: |
|
2004/3/20 11:23:51 |
3楼: |
谢谢2楼的,按你的方法应该是: procedure TFrCPZL.DBGrid1TitleClick(Column: TColumn); begin column.Width := canvas.textwidth('000'); end; 但这样只能指定为'000'的文本长度,用什么代码替代'000',来实现该列中最长的内容来指定宽度呢?
----------------------------------------------
-
|
作者: |
|
2004/3/22 8:43:09 |
4楼: |
沉了,顶一下,望有高手能帮忙解决问题.
----------------------------------------------
-
|
作者: |
|
2004/3/22 9:44:15 |
5楼: |
在设置dbgrid的时候,不要手动设置列的宽度,一般默认为好像是64,但是它在运行的时候可以自适应的,按照定义字段的长度自动调节宽度。 如果用canvas.textwidth('000')代替的话,000用length(**tostr(field))
----------------------------------------------
-
|
作者: |
|
2004/3/27 8:51:13 |
6楼: |
很好的
----------------------------------------------
继续开发我的delphi 仍然有Java 各位加油!
|
作者: |
|
2004/3/27 9:52:34 |
7楼: |
这样取的长度好像只是第一条的长度,怎么样才能取得这列下面的最长的字符串呢!
----------------------------------------------
-
|
作者: |
|
2004/3/27 9:58:53 |
8楼: |
问题还没解决,正如7楼所说的一样.
----------------------------------------------
-
|
作者: |
|
2004/7/30 16:04:51 |
9楼: |
这个问题很久了,还未能解决,谁来帮一下.
----------------------------------------------
-
|
作者: |
hys119 (hys119) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/8/6 8:59:29 |
11楼: |
等待,希望高手回答
----------------------------------------------
-
|
|