起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 443|回复: 22

【搞定】[请求]能否用代码影响DOCVIEW中表单某一列或行的宽度?**

[复制链接]
发表于 2007-9-5 16:12:20 | 显示全部楼层 |阅读模式
功能窗体调用了某个信息里的表单
能否在功能窗体里写代码
使得当窗体宽度发生变化的时候
表单里的某一列也跟着变化?
回复

使用道具 举报

发表于 2007-9-5 17:07:21 | 显示全部楼层
为啥这样做呢,设置Docview 的 Align 属性为alClient,或者其他的,只要别设置为alNone,DoCview会根据当前窗体的自动变化的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-5 17:16:52 | 显示全部楼层
docview会跟着变化
但是里面的东西不会
所以有时候会很难看

Pic_026.jpg

13.1 KB, 下载次数: 173

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-5 17:17:58 | 显示全部楼层
比如楼上的
如果我能将其中的列拉宽一点
右边就不会有那么多空白了
回复 支持 反对

使用道具 举报

发表于 2007-9-5 18:10:03 | 显示全部楼层
这样做没有太大的意义,且会影响性能的,
如果一定要做就去结合key或者mouse 的事件,去看Form的宽度,然后去改变,可以先别管Docview中的文档,就是一个窗体,窗体上有一个Edit,Edit根据窗体的大小,而改变其宽度,这部分你可以参考Delphi的相关说明,这个实现了,那么DataGrid的列宽很容易实现了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-6 08:55:11 | 显示全部楼层
意义还是有一点的
我不光是想改变datagrid的宽度
还要改变其它信息的宽度

我当然希望窗体在任何时候
都能像下图一样显示
能够很好地匹配窗体

变化的前提是form的高和宽的变化
然后跟着变化的是表格中的行宽和列宽
(因为我的datagrid是放在表格中的,随表格的行宽和列宽改变)
我是不知道表格中的行宽和列宽怎么表示
如果可以表示的话
我还是希望试一试

Pic_027.jpg

14.66 KB, 下载次数: 150

回复 支持 反对

使用道具 举报

发表于 2007-9-6 08:59:46 | 显示全部楼层
那你就先根据5楼说,去尝试做吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-6 10:12:02 | 显示全部楼层
不是很理解5楼的话
你说窗体上的Edit指的是属性还是控件?
如果是属性,我没有找到
如果是说控件,控件的宽和高我会用代码调整。

你看一下我设计的表格吧
难道可以不通过改变表格的行宽和列宽
而改变里面的内容的高度和宽度?
如果一定要改行宽和列宽
[B]我想知道某一列的列宽用代码怎么表示[/B]

Pic_028.jpg

40.48 KB, 下载次数: 148

回复 支持 反对

使用道具 举报

发表于 2007-9-6 10:35:05 | 显示全部楼层
5楼的意思,你先别管文档的列的问题,做一个功能,窗体上就是一个Edit控件,然后写代码来捕获key或者mouse动作,调整Edit控件。这步请参考delphi的相关说明,

如果这步实现了,改变文档的列的宽度就易如反掌了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-6 11:16:34 | 显示全部楼层
我写了一个
运行的时候已经成功了
代码如下:
procedure TMainForm.BizFormResize(Sender: TObject);
begin
     Constraints.MinHeight:= 150;
     Constraints.MinWidth:= 200;
     if (Height>150) or (Width>200) then
     begin
     Edit1.Top:= 44+round((Height-150)/3);
     Edit1.Left:= 20+round((Width-200)/3);
     Edit1.Height:= 20+round((Height-150)/2);
     Edit1.Width:= 121+round((Width-200)/2);
     end
     else
     begin
     Edit1.Top:= 44;
     Edit1.Left:= 20;
     Edit1.Height:= 20;
     Edit1.Width:= 121;
     end;
end;

我是想知道怎么把文档里的行和列
表示为******.width之类的代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-15 21:08 , Processed in 0.049555 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表