delphi对话框确认问题

zhengyanwml 2010-01-21 11:55:47
大家好!我的应用程序是用delphi编写的,用到了多线程。在三个线程中都用到了
if application.messagebox('忽略吗?',‘报警’,mb_yesno)=id_no then
begin
。。。
end
else
begin

end;
遇到问题:如果三个线程中的提示对话框同时出现的话,点击一个对话框的是或者否,三个对话框都消失。
请大家帮忙,我能否一个一个的点击对话框中的是或者否。
还有就是不用这种方式的对话框,请大家告诉我其他方式的对话框,能实现我的功能也行
先谢谢大家了
...全文
317 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyanwml 2010-01-26
  • 打赏
  • 举报
回复
谢谢,一楼的朋友。按你说的我试了,程序好了
lhy 2010-01-21
  • 打赏
  • 举报
回复
线程里面不好直接出窗口吧,最好发消息给主线程。
金卯刀 2010-01-21
  • 打赏
  • 举报
回复
Application.MessageBox是呼叫API:MessageBox。

MessageBox是一個模態窗口,但只會對呼叫它的UI線程來說,是模態窗口。

所以,在三個線程UI線程中,三個模態窗口之間應該是不會互相影響的。

參考application呼叫messagebox的方法:
Result := Windows.MessageBox(Handle, Text, Caption, Flags);
這個handle是app的隱藏窗口,是主線程中的東西。
這樣使用是有問題的。

其他線程不應去這樣用。應該自己呼叫messagebox,第一個參數傳0或本線程的窗口handle

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧