CnPack Forum » CnVCL 组件包 » 关于cnPack包中image控件的问题,


2005-7-25 17:35 ftmouse
关于cnPack包中image控件的问题,

我使用的是 bcb6

我在使用 CnPack包中的 image 这个控件的时候,发现,一个问题,就是有时候该控件无法显示在别的控件上面

如果只用bcb自带的控件 和该控件 是可以把该控件置顶的,

但是,我需要用 Experss dev 控件包中的面板和grid, 发现 cnImage控件始终无法放在或显示在 他们的上面,总是被 ExperssDev的控件盖在下边,

也就是说,cnImage 中 没有 置顶的选项,不知道是否能够加上,


还有就是,该控件 在设计环境下 无法加载图片,只有在运行环境下才能加载

2005-7-28 23:40 ftmouse
不会吧 3天了,一个新的帖子都没有

2005-7-29 08:27 zjy
抱歉,这几天感冒了,大部分时间在休息。
CnImage 这个控件最初只是用来测试 CnGraphic 库的,功能简单,也没仔细测试,所以没有注册到面板上,并不推荐大家使用。您提到的问题,有空我会分析一下。

2005-7-29 11:44 ftmouse
身体是革命的本钱,一定要注意

经过几天的思索,并且和别的 各种image 控件对比,发现,可能无法解决这个问题,估计你们也不行

我的目的就是,在我的程序的 form 上。放一个没有背景色的图形标志,我发现几乎所有的image 控件都是没有tabstop 属性,只有ExperssDev 里的image 控件有这个属性,也只有这个包里的image控件可以放在最上方,但是 它会有一个无法去掉的,背景色,
所以 我想这个问题可能是无法用控件解决的。

2005-7-29 15:13 zjy
您提到的问题,其实是由于 TGraphicControl 和 TWinControl 两大类控件的差异。VCL 对 Windows 图形用户系统做了大量的包装,TWinControl 是真正意义上的窗口控件,拥有独立的窗口句柄,可以拥有子窗口。而 TGraphicControl 只是 VCL 虚拟出来的图形控件,本身没有窗口句柄,不能获得窗口焦点,也不能作为其它窗口的父窗口。VCL 通过一套控件消息派发机制使得没有窗口句柄的 GraphicControl 也能影响恍如鼠标点击等事件。Image 通常只用来显示图像,在 VCL 和 CnPack 中都是 GraphicControl。建议您找本讲解 VCL 和 Win32 系统的书来看看。

不过您提到的问题,倒是可以有解决办法的。虽然我们不能在设计期把 Image 放到 Grid 的上面,但是可以在运行期,把 Image 的 Parent 属性设置到 Grid,使其成为 Grid 的子控件而达到显示在最上面的目的。您可以试试在窗体的 OnCreate 事件里写上:
Image.Parent := Grid;
Image.Left := 10;
Image.Top := 10;
看看效果。

2005-7-30 22:54 ftmouse
谢谢管理员的关注,和方法,我相信正如你所说,是因为基类的问题,

用父属性的方法,还是不行,因为ExperssDev  
的grid控件上还有2个没用父属性的东西,所以即使 制定了父属性,还是无法显示,
我决定改用 透明的窗体 或者说是 不规则窗体的办法解决这个问题


另,经启发 我正在研读,李维的 《深入核心vcl构架剖析》

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.