运行期如何将动态创建的TShape置于其它控件之上,使之不会被挡住?

Libran 2002-09-13 09:34:21
用了BringToFront()方法无效。
查帮助说是图形组件(由TGraphicControl继承,如TShape)无法用BringToFront方法置于窗口组件(由TWinControl继承,如TEdit)之上。
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice_hannibal 2002-09-13
  • 打赏
  • 举报
回复
TSHAPE的BringToFront方法在同一画布上对不同SHAPE有效
在动态创建SHAPE时,定义了SHAPE的PARENT,所以SHAPE只能
画在PARENT控件上

kingcaiyao(AKing) 的方法值得一试,但是好象从TCustomControl继承
的时候,画斜线时有正方形存在
********
* * *
* * *
********
太难看了

rxiao99 2002-09-13
  • 打赏
  • 举报
回复
调用TShape::BringToFront试试看
kingcaiyao 2002-09-13
  • 打赏
  • 举报
回复
TShape是从TGraphicControl继承下来,它不是窗口控件,当然不可以用BringToFront,解决的方案是从TCustomControl继承,自已写一个类似于TShape的控件.
ice_hannibal 2002-09-13
  • 打赏
  • 举报
回复
我也遇到过这种情况,试了一些方法都不行
最后只好在TSHAPE放在TEDIT上时
设置TEDIT的VISIBLE、调整宽度等狂笨的方法

学习。。。
Libran 2002-09-13
  • 打赏
  • 举报
回复
TImage也是由TGraphicControl继承下来的图形组件啊
你换个TEdit再试试?!
Hawk_sun 2002-09-13
  • 打赏
  • 举报
回复
不会吧!
我在Form1上放了一个TImage,一个TShape,然后再动态创建了一个TShape,和设计期创建的shape1的位置重叠,我动态调用Show的时候怎么能够显示呢?它是在最顶端啊!
Shape2=new TShape(this);
Shape2->Brush->Color=clRed;
Shape2->Shape=stCircle;
Shape2->Parent=Form1;
Shape2->Top=Shape1->Top;
Shape2->Left=Shape1->Left;
Shape2->Show();

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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