首页  编辑  

OLE 操作 MSGraph.Chart 的内存和显示问题

Tags: /超级猛料/Office.OA自动化/   Date Created:

减少Graph对象的内存占用和隐藏显示

在操作Word插入Chart对象的时候,如果不进行控制,Chart会自动显示出来,导致Word窗口即使设置了Visible属性为False,只要动一动鼠标,切换一下窗口,Word就会显示出来,而且每插入一个Chart对象,就会生成一个Graph.exe的进程,如果一个Word文档里面要插入100个Chart,就会有100个Graph.exe的进程,明显会导致系统的反应速度缓慢。要避免这种情况,请在插入Chart对象后,调用Chart对象的OLEFormat.Application.Quit可以。

uses

 Word_TLB, Graph_TLB;

var

 O1, O2: OleVariant;

 oShape: InlineShape;

 C : Graph_TLB.Chart;

begin

 O1 := 'MSGraph.Chart';

 O2 := App.Selection.Range;

 oShape := Doc.InlineShapes.AddOLEObject(O1,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

         EmptyParam,EmptyParam,O2);

 C := oShape.OLEFormat.Object_ as Chart;

 C.Application.Visible := False;

 C.Application.Update;

 C.Application.Quit;

 C := nil;

 oShape := nil;

end;