对不起,我的英语不好...
我想使用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/