在线程中怎样ShowModle另外的一个窗体?我写的一个总有问题 ( 积分: 100 )

  • 主题发起人 主题发起人 dulei_115
  • 开始时间 开始时间
修改如下
第一步:
procedure TMyThread.Execute;
begin
//inherited;
with TForm3.Create(fOwner)do
begin
ShowModal;
Free;
end;
end;

第二步:
将show方法移入Synchronize中,否则拖动showmodal窗体,form1不刷新
TMyThread = class(TThread)
private
fOwner: TForm;
protected
proceduredo
Show;
procedure Execute;
override;
public
constructor Create(vOwner: TForm);
destructor Destroy;
override;
end;

procedure TMyThread.DoShow;
begin
with TForm2.Create(fOwner)do
begin
ShowModal;
Free;
end;
end;

procedure TMyThread.Execute;
begin
Synchronize(DoShow);
end;
 
我刚开始用嘛,所以跑来问,要说就说明白一点,难道我问的不够明白吗?
 
调用主线程的方法,来showmodal窗体,好像不能等待吧,不确定:(
 
这样就对了,唉,怪我没早点把代码贴全,结贴,谢谢各位
 
答案就是使用Synchronize,怪自己的水品太低
 
后退
顶部