简单的问题,关于利用控制OLE AUTOMATION控制对象之后...(50分)

  • 主题发起人 主题发起人 CJ
  • 开始时间 开始时间
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要用EXCEL做点小报表,我用如下代码:
...
var
Templete: Variant;
MsExcel:Variant;
MsExcelWorkBook:Variant;
i:integer;
begin
//Create OLE link
Showmessage('可能需要等待一些时间,按确定开始执行报表!');
Templete := ReadRpt + RPT_COMPACT1;
try
MsExcel:=CreateOleObject('Excel.Application.8');
MsExcelWorkBook:=MsExcel.WorkBooks.Add(Templete);
except
Showmessage('请先安装 Microsoft Excel 97 或更高版本。');
exit;
end;
...
MsExcel.Visible := true;
...
当填写完数据后,我希望让用户自由编辑此表格。
但是,当用户关闭EXCEL(保存或不保存工作表),程序会出现异常错误,虽然
没什么影响,但总不爽。我知道可以FREE这个对象,但这样,EXCEL就被关了
我想,建立报表后,EXCEL就和程序脱钩。难道一定要SAVE到文件再SHELLEXECUTE出来才成?
 
为什么不用d5中servers上的excelapplication,它封装了事件,比如
onworksheetclose等,在事件里处理试试。
 
用D5的ExcelApplication和ExcelWorkBook岂不省心
 
to CJ:
我有一问题,虽500分,可无人问津,帮忙看看。
<A HREF="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=221876">
谢谢</A>
 
连错啦!
<A HREF="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=221867">
这儿才是</A>
 
一看4张帖子,满开心
两张劝我改行,两张问问题
我倒!
拜托诸位啊,帮帮忙。
猪2:去了
 
猪2是傻瓜,刚才更我抢机器用,其实那问题是我的。
 
哦,好复杂,害我又看一遍!
晚上再来等答案吧...
 
说到了SERVER控件,我以前有个问题,怎样省略参数?

不过,用SERVER耶上的构件,不能用省略参数。
我以前用OLEVARANT时,可以那么用:
WORKBOOKS.ADD;
而现在一定要用
WORDBOOKS.ADD(TEMPLATENAME)
有的函数有5、6个没用的函数,那不麻烦死我?

http://www.delphibbs.com/delphibbs/DispQ.asp?LID=180965
 
能不能在你的excel模板内添加事件OnApplicationClose ,
在那里做的手脚?

如,不准在这里关闭、或断开连接在关闭
 
sanrex:
不要!我就要让他们能随便关闭,不行吗?
救命啊~~~~~~~~~~~~
 
>不过,用SERVER耶上的构件,不能用省略参数。
试试使用EmptyParam

hehe.我看了这么就,不知大家在讨论什么? {B-)
 
emptyparam怎么用?
WORDBOOKS.ADD(emptyparam)?
另外有分的诸位!

我们在讨论:
用varant建立了与COM对象的连接,让此对象与程序脱钩.
 
呵呵,看看声明吧:

var EmptyParam: OleVariant;
 
O,果然比较无聊:(不会搞个方法重载?:(

继续继续,我上面的问题,
 
我做人好失败啊
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部