delphi - 显示耗时过程的进度

标签 delphi user-interface dialog

对不起,我的英语不好...
我想使用Delphi 7创建一个对话框窗口,以显示当我必须运行缓慢的进程时应用程序中发生了一些事情。
我的想法是做一些我可以使用的事情:

with TMyDialog.Create do
begin
  //call the time consuming method here
  Free;
end;


当我创建对话框时,会显示一个带有动画或其他内容的窗口,并且该窗口将在耗时的方法结束后(在自由方法上)消失(如果我可以手动从该对话框中更新进度,那将是很好的)过程给我这样的信息:

with TMyDialog.Create do
begin
  while time_consuming_method do
  begin
    UpdateStatusOnMyDyalog();
  end;
  Free;
end;


但通常情况下,这只是一个动画,可以显示出正在发生的事情。

是否有人做过这样的事情,是否知道某个组件或对以最干净,最简单的方式进行操作的最佳方法有任何建议?

最佳答案

不好但很简单的方法是在Application.ProcessMessages期间调用UpdateWindow(Handle)time_consuming_method(更新表单)并增加进度条。更好的方法是将您的time_consuming_method包装到带有OnProgress事件的类中。最后,正如其他人所建议的那样,您可以为time_consuming_method使用单独的线程-这是最强大的技术,但学习曲线最差。

关于delphi - 显示耗时过程的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591119/

相关文章:

delphi - 防止皮肤名称在我的 dxBarCombo1 中重复

javascript - 执行关联的 JavaScript 后如何获取页面的源 HTML?

user-interface - 如何使用应用程序脚本在 Google 电子表格的单元格内添加 UI?

c - 如何在单个窗口中显示gtk中的文本和按钮?

facebook - 无法在 Facebook 提要对话框(直接 URL)上添加带有 url 参数的图片

delphi - 是否记录了 Set 类型的星号运算符?

delphi - 如何手动调用DSProxyGEN.EXE生成Delphi DataSnap代理客户端?

Javascript UI 库 - CMS 重建

c++ - VS2017 是否允许在 C++ 项目的可视化对话框编辑器中更改控件的 Tab 键顺序?

string - 从 FileOpenDialog() 处理多个文件名