OleContainer加载Excel。如果Excel处于编辑状态时,退出会出错!!望高手指点。(100分)

  • 主题发起人 主题发起人 laiyongjun
  • 开始时间 开始时间
L

laiyongjun

Unregistered / Unconfirmed
GUEST, unregistred user!
用一个Treeview控制OleContainer显示的内容。当点一下Treeview的一个叶结点时,OleContainer加载该结点所对应Excel内容,现在对刚加载的内容进行编辑,如果OleContainer里的Excel处于编辑状态,再去点TreeView中的另一叶结点,就会出错,我什么方法都试过了,就是不行。

我处理的方法如下:
procedure TForm1.OleContainer1Exit(Sender: TObject);
begin
//OleContainer1.Perform(WM_KeyDown, 27, 0);
SendMessage(Handle, WM_KeyDown, VK_ESCAPE, 0);
end;

可是不行,望高手指点。
 
通过编程关闭所有excel进程
 
如果要代码晚上给你
 
好的,谢谢了。因为我晚上不能上网,那麻烦你把代码发在lyj@mypy.cn里。
谢谢!!
 
非常谢谢wugwdelphi的邮件。

通过编程关闭所有excel进程:
killProcess('excel.exe');
如果杀掉了,那么当鼠标点TreeView的另一个叶结点以显示另一Excel的文档时,又要启动Excel进程,这样可能效率会下降很多。
 
在线等待,谢谢!
 
oleContainer1.Close; //退出 Ole 服务器
用的时候再打开。
 
这种方法:
oleContainer1.Close; //退出 Ole 服务器
不行哈。

总之,在OleContainer加载TreeView的结点所对应Excel内容后,现在对刚加载的内容进行编辑,如果OleContainer里的Excel处于编辑状态(光标在Excel的单元格里闪烁),再去点TreeView中的另一叶结点加载该结点所对应的Excel文档,就会出错,出错的内容为:

因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫。
 
后退
顶部