起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 139|回复: 2

【结】打开多个excel的问题**

[复制链接]
发表于 2008-6-5 16:23:38 | 显示全部楼层 |阅读模式
想将内容以excel展现,出现问题:
第一次点击,打开了1张,第二次2张,第三才3张......
每点一次就多一张,怎么回事?
代码如下:

var
  OLEContainer: TOleContainer;
  sm:TStream;
begin
//修改

      if DS1.DataSet.fieldbyname('guid').Text<>'' then
      begin
          try

          sm   := self.DS1.Dataset.CreateBLOBSTREAM(DS1.Dataset.fieldbyname('RZNR'),TBlobStreamMode.bmRead);
          if   sm.Size   =   0   then
          begin
             exit;
          end;
          OLEContainer:=TOleContainer.Create(self);
          OLEContainer.Width:=0;
          OLEContainer.Height:=0;
          OLEContainer.Parent := Panel6;
          OLEContainer.CreateObject('word.document',true);
          OLEContainer.loadfromstream(sm);
          OLEContainer.DoVerb (OleCtnrs.ovOpen);
          OLEContainer.SizeMode:=TSizeMode.smCenter;
         finally
         sm.free;
        // OLEContainer.Free;
        end;
      end;
end;
回复

使用道具 举报

发表于 2008-6-5 16:33:19 | 显示全部楼层
将OLEContainer: TOleContainer;放在函数外面(全局变量),
if  OLEContainer = nil then
begin
         OLEContainer:=TOleContainer.Create(self);
          OLEContainer.Width:=0;
          OLEContainer.Height:=0;
          OLEContainer.Parent := Panel6;
end;
试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-5 16:57:46 | 显示全部楼层
可以了,结贴
不过我原来用了free竟然都不得,有点奇怪哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 10:56 , Processed in 0.040312 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表