如何在线程中创建一个TForm对象(100分)

  • 主题发起人 主题发起人 leont
  • 开始时间 开始时间
L

leont

Unregistered / Unconfirmed
GUEST, unregistred user!
我在TThread的Execute中创建了一个TForm1对象frm并显示,
但运行时总是出错。怀疑是VCL线程安全的问题。但我必须用
TForm对象,请问如何解决?
 
没有这回事,我的很好
比如说unit3的form类为Tform3.
.........
uses unit3;
procedure Test.Execute;
var
fo:TForm3;
begin
fo:=TForm3.Create(nil);
fo.ShowModal;
fo.free;
end;
运行得很正确
 
贴原马如何?
 
你该不会没用SYNCHRONIZE吧。
如果要同步,例如是状态显示用,最好另外新建线程,线程间通讯。或者在CREATE中
FROM生成,DESTROY中FREE,EXECUTE中SHOW,不要用SHOWMODLE,否则不CLOSE,根本
不返回。
 
I test it ,
no error.
 
最好用Synchronize方法,保证调用安全
 
喂!老兄,你用的是delphi几呀!^^
 
提问者:
如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
请认真阅读大富翁论坛规则说明 http://www.delphibbs.com/delphibbs/rules.asp
 
接受答案了.
 
后退
顶部