用Delphi5控制 EXCEL 的退出 急!!!(200分)

  • 主题发起人 主题发起人 蒋劲刚
  • 开始时间 开始时间

蒋劲刚

Unregistered / Unconfirmed
GUEST, unregistred user!
在Dephi5中我使用了Server页中的ExcelApplication 控件
我想不让Excel 自已关闭,即用鼠标点击Excel 的窗口关闭按钮时不能关闭
Excel 只能用我的程序关闭Excel。

我在ExcelApplication中定义
procedure TForm1.eaWorkbookBeforeClose(Sender: TObject; var Wb,
Cancel: OleVariant);
begin
Cancel := True;
end;

不起作用,不知为什么?
望各位高手能帮我解决这个问题。谢谢!!
 
你把VISIBLE设置为FALSE好了:)
或者用OLE连到程序里
 
我的程序是要用户在Excel里输入数据的,所以必须给用户看到,
另外用OLE连到程序里,是什么意思?
谢谢!
 
有个api可以将右上角的关闭按钮失效,记不得了。
 
OLE连到程序里就是将Execl的界面嵌入到你的程序窗体中用ole很好实现,
delphi也自带此类例子...只有这样才能真正控制关闭否则你是没法限定它自已的关闭的...
 
把 Cancel := true 换成 abort 试试
 
同意robert.l的意见!(名字怎么这么鬼怪?)
使用 OLEContainer component

Use the OLEContainer component to provide your application with the ability to link and embed objects from an OLE server.

When you activate an object inside the OLE container, control transfers to the OLE server application, so the user can access all the functionality of the server application from within your container application.
可以做到 远程服务器内嵌……
打开时 doverb(0)<<--设置为零。
你的 Excel 就是你程序的一部分了,别人想关闭也没有办法~
 
但是如果使用OLE嵌入自己的程序, 如何用程序来向它写入数据呢!
 
很容易,用VBA~远程控制……
你可以看看我回答的问题~
 
to hsw:
来个例子吧。
 
我也想知道!
 
ovExcel := CreateOleObject('Excel.Application');
ovExcel.WorkBooks.Add('D:/template/Fp.xlt');
ovExcel.ActiveSheet.Cells[7,1] := FindField('TABLE1_3').AsString;
ovExcel.ActiveSheet.Cells[7,4] := FindField('TABLE1_4').AsString;
ovExcel.ActiveSheet.Cells[7,5] := FindField('TABLE1_5').AsString;
ovExcel.ActiveSheet.Cells[7,6] := FindField('TABLE1_6').AsInteger;
ovExcel.ActiveSheet.Cells[7,7] := FindField('TABLE1_7').AsInteger;
ovExcel.ActiveSheet.Cells[7,8] := FindField('TABLE1_8').AsFloat;
vExcel.Visible := True;
ovExcel.Quit;

蒋劲刚:
你能将Server页中的ExcelApplication 控件调用全过程给我贴过来吗?


 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
后退
顶部