Delphi:为什么消息阻止该程序?

时间:2013-07-15 10:05:42

标签: delphi messagebox

如果我在显示消息时使用delphi ShowMessage或MessageDlg,程序会等待按钮中的单击,我不希望程序阻止自己。 我需要显示一条消息,我写的是程序正在搜索,但只要显示消息,搜索就不会启动.. 我该怎么办?

谢谢,杰克

ShowMessage('Sto ricercando . . .');
if (cartellaSorgente[Length(cartellaSorgente)] <> '\') then
begin
// do the research
end;

1 个答案:

答案 0 :(得分:5)

ShowMessage显示模态对话框。这意味着在关闭对话框之前,对ShowMessage的调用不会返回。

您的问题是您希望在不阻止UI的情况下执行长时间运行的任务。实现这一目标的方法是将长时间运行的任务(搜索)放入一个单独的线程中。将消息从搜索线程发送到UI线程,以允许UI通知用户进度。