neh*_*ets 2 delphi ole ms-word
我们在Delphi 7中使用一些OLE自动化来打开word文档,然后一旦加载,保存它,并将其加载到数据库中.
这工作正常,但部分要求是在OLE位发生时有一个进度条,如果OLE部分耗时太长则还有一个超时.
我们遇到的问题是整个GUI在OLE发生时冻结.进度条什么都不做,然后在最后拍摄.
关于我们如何处理这个问题的任何想法?
我认为这很难干净利落.据我所知,Word自动化不会让您有机会取消长时间运行的事件.它也不会通知您进度.
您可以做的最好的事情就是首先将自动化移动到一个单独的线程中.然后在长时间运行的自动化过程中抛出一个选取框进度条.至少这将让用户知道发生了什么事情.
取消时,您可以让用户从进度对话框中取消,然后继续您的程序.您可以杀死自动化线程,但这会使Word处于错误状态.我只是让它继续完成,但后来忽略了结果.从用户的角度来看,这将很好地满足您的目标,即使它在幕后有点脏.