控件Free的问题(在线等候)(100分)

  • 主题发起人 主题发起人 独孤剑
  • 开始时间 开始时间

独孤剑

Unregistered / Unconfirmed
GUEST, unregistred user!
Form上有一个Panel:Panel1,Panel1上有一个TSpeedButton
在TSpeedButton.Click事件中写代码
Panel1.Free
出现错误信息, 如何Free调父Panel不会出错,前提是在TSpeedButton.Click中Free
 
我用Delphi6试了,没问题.
 
但是Delphi5不行啊
 
D3也可以啊,不好意思,我现在只有D3,呵呵。。
应该是没问题的吧。
 
应该再加一个前提条件:必须是Delphi5!
 
Delphi5确实有问题,
我用Panel1.RemoveControl(SpeedButton1)后再Panel1.Free都不行.
gz
 
不过你为什么要这样做呢?我以前用D5也写了好多程序,没用到这一招啊。
要它不见的话,先隐藏它吧。
 
是这样的:那个Speedbutton按钮的功能就是将Panel关掉,当然应该是Free而不是Hide拉
 
你可以在窗体上另加一个控件buttonfree,把其visiable设置为false;在其onclick事件里加
panel1.free; 然后在TSpeedButton的onClick事件种调用 buttonfree.click;
 
为何有这样的需求?
 
to w12345678
那样做结果还不是一样!唉
 
搞定.
将SpeedButton换成没有标题的BitBtn
 
试试用这个方法行不行
SpeedButton1.Parent:=Form1;
Panel1.Destroy;
SpeedButton1.Destroy;
 
sallypo的方法我试过,不行.
 
to LeeChange
我有试过TBitBtn,在通常情况下不会出错,但是某些时候它依然会出错,不知道为什么
而且点中BitBtn时,上面有一个虚线,特别难看,我的SpeedButton是12×12的
 
要不就POSTMESSAGE给它,让他自己慢慢FREE了。
 
最简单的方法,放一个用Timer,默认Enable为False
SpeedButton的功能改为设Timer.Enable为True
在Timer构件的触发事件里面释放Panel,并释放Timer,当然,你喜欢可以不释放Timer
经测试,一切正常!
 
用Tbutton没问题,Tspeedbutton就不行了
它们两个是从不同的类继承来的,不知道是什么原因
 
to fshell:
你的方法是我最后实在万不得已的使用的龌龊方法,呵呵,我就是想上来看看大家有没有
更好的解决方法。
好大家继续帮我出出主意,不胜感激
 
不把panel当容器?
 
后退
顶部