如果我在显示消息时使用delphi ShowMessage或MessageDlg,程序会等待按钮中的单击,我不希望程序阻止自己。 我需要显示一条消息,我写的是程序正在搜索,但只要显示消息,搜索就不会启动.. 我该怎么办?
谢谢,杰克
ShowMessage('Sto ricercando . . .');
if (cartellaSorgente[Length(cartellaSorgente)] <> '\') then
begin
// do the research
end;
答案 0 :(得分:5)
ShowMessage
显示模态对话框。这意味着在关闭对话框之前,对ShowMessage
的调用不会返回。
您的问题是您希望在不阻止UI的情况下执行长时间运行的任务。实现这一目标的方法是将长时间运行的任务(搜索)放入一个单独的线程中。将消息从搜索线程发送到UI线程,以允许UI通知用户进度。