0

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

谢谢,杰克

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

1 回答 1

5

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

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

于 2013-07-15T10:18:19.810 回答