【问题标题】:Delphi - Control Dialog Form Show Status from a ThreadDelphi - 控制对话框表单显示线程的状态
【发布时间】:2013-06-11 09:55:58
【问题描述】:

在我的应用程序中,我在一个线程中执行大量任务,例如对大型数据库的多次查询。 我创建了一个对话框(自定义表单),带有一个进度条和状态栏,向最终用户显示你做了什么软件,我可以毫无问题地将进度状态与回调模式同步。

我的问题是如何控制此对话框(自定义表单)在线程执行之前以模式显示,并在线程完成时关闭。

【问题讨论】:

  • 您需要哪些帮助?显示还是关闭?
  • 线程的OnTerminate 事件似乎是一个好主意,可以指示模态表单关闭。
  • @DavidHeffernan 我可以使用 MyDialog.ShowModal;MyThread.Start(); 轻松显示对话框表单,问题是当线程结束对话框时如何关闭并软回来显示主表单。
  • 获取回调以设置模态表单的 ModalResult。
  • @LURD 将信号发送到模型表单的更好方法是什么。

标签: multithreading delphi dialog


【解决方案1】:

在调用ShowModal() 之前启动线程,或者让表单的OnShow 事件启动线程。使用线程的OnTerminate 事件(在主线程中运行)到Close() 表单,这将导致ShowModal() 退出。在线程运行时,它可以使用TThread.Synchronize() 或自定义窗口消息来根据需要更新表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多