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;
解决方案 »
- 很诡异的问题(调用WebService中的函数,直接在网页上面发送返回失败的消息但在程序中调用发送就返回成功的消息)
- 麻烦详细说一下ADOConnection连接方法
- 谁能提供软件注册的参考代码或源代码软件
- 一个关于虚函数调用的问题 !!!!!!! 急急急急急急急急急急急急急急 !!!!!!!
- 一个后台运行的程序,如何获知当前运行的程序是否全屏显示(如游戏,看蝶之类)?
- DBGrid如何实现从数据库读数据显示时候如csdn论坛上的班马条效果颜色?
- 在access表中用sql建索引怎么写??
- 请教Indy10中TIdHttp的post方法无法返回的问题
- 谁知道delphi6序列号???
- 如何在播放音乐的同时根据音乐节奏显示波形图?我用Tmediaplayer控件做的播放器。
- 用READ和WIRTE可以对文本文件进行读写,怎样对文本文件指定的行进行删除。给20分(只有这么多希望大家能给予帮助))
- 为何DBgrid只可显示小数点后的四位,不知如何显示更多位?
为什么一定要用showmodal?
如果一定要用showmodal,那就用线程吧。
此form2设置为一直在最前面
再用form2.show
就可以了
再用form2.show
---------------------
这样不好,form2会覆盖其它程序,使你的程序太霸道
用线程可以,如果不怕麻烦的话.如果不能提高效率,不要用线程.