ShowModal会中断调用者,直到那个窗口结束.可以使用PostMessage.const
MyMessage=WM_USER+1000;...
protected
procedure DoTask(var Message:TMessage); message MyMessage;
public
...
end;...
PostMessage(Handle,WM_MyMessage,0,0);
Form2.ShowModal;
end;procedure TForm1.DoTask(var Message:TMessage);
begin
...//do your task here
PostMessage(Form2.Handle,WM_CLOSE,0,0);
end;
MyMessage=WM_USER+1000;...
protected
procedure DoTask(var Message:TMessage); message MyMessage;
public
...
end;...
PostMessage(Handle,WM_MyMessage,0,0);
Form2.ShowModal;
end;procedure TForm1.DoTask(var Message:TMessage);
begin
...//do your task here
PostMessage(Form2.Handle,WM_CLOSE,0,0);
end;
解决方案 »
- 编译有这种提示,什么原因????
- 控件问题?
- 抢答题:有一个字符串“55.28”,我想把它变成double型的,该如何用函数转换呢做呢。
- 如何监控一个表的所有改表
- rave问题在线等待
- delphi6如何调用SQL SERVER 2000中自定义的存储过程?马上给风
- 在Pascal中如何定义一个指向数组的指针?
- 联机多用户的并发处理?
- 请问调用CreateProcess函数时,它那个BOOL类型的参数如何传递?
- 怎样将一幅彩色位图转化为黑白色的位图?
- 用READ和WIRTE可以对文本文件进行读写,怎样对文本文件指定的行进行删除。给20分(只有这么多希望大家能给予帮助))
- 为何DBgrid只可显示小数点后的四位,不知如何显示更多位?
为什么一定要用showmodal?
如果一定要用showmodal,那就用线程吧。
此form2设置为一直在最前面
再用form2.show
就可以了
再用form2.show
---------------------
这样不好,form2会覆盖其它程序,使你的程序太霸道
用线程可以,如果不怕麻烦的话.如果不能提高效率,不要用线程.