救急,请问如何响应动态生成的COM对象事件!!! ( 积分: 100 )

  • 主题发起人 主题发起人 emoth
  • 开始时间 开始时间
E

emoth

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟我在开发一个CAD程序时,想让用户在关闭CAD时在开发的程序中给予一个提示,即在程序的CAD的关闭事件中显示一个对话框。由于该CAD程序对象是动态建立的,因此需要在建立该CAD对象的时候手动地将某段过程指定为CAD对象的关闭事件。我的程序代码如下,能通过编译,只是在运行时执行到★行时系统就会提示Automation对象不支持该事件?请教各位大侠,如何动态的将某过程指定为该事件呢,谢谢,在线等待!

procedure TfrmMain.AcadDocument1BeginClose(Sender: TObject);
{ TODO : 当CAD关闭时有此事件 }
begin
msg('AutoCAD已关闭!');
StatusBar1.Panels[0].Text:='未链接';
end;

procedure TfrmMain.mnuLinkCADClick(Sender: TObject);
{ TODO : 连接CAD }
var
AcadApp:OleVariant;
begin
try
AcadApp:=GetActiveOleObject('AutoCAD.Application');
AcadDocument1:=Acadapp.ActiveDocument;
  //★以下一行即动态的为一个OLE自动化变量指定一个事件程序,但是运行时却通不过
AcadDocument1.OnBeginClose:=AcadDocument1BeginClose(Sender as TObject);

msg('链接 AutoCAD 成功!版本:'+
AcadApp.Version+#13+#13+
'当前图形文件:'+#13+#13+AcadApp.ActiveDocument.FullName,'I');

StatusBar1.Panels[0].Text:='已链接至AutoCAD '+AcadApp.Version;
except
StatusBar1.Panels[0].Text:='未链接';
end;
end;

相同帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2988831
 
小弟我在开发一个CAD程序时,想让用户在关闭CAD时在开发的程序中给予一个提示,即在程序的CAD的关闭事件中显示一个对话框。由于该CAD程序对象是动态建立的,因此需要在建立该CAD对象的时候手动地将某段过程指定为CAD对象的关闭事件。我的程序代码如下,能通过编译,只是在运行时执行到★行时系统就会提示Automation对象不支持该事件?请教各位大侠,如何动态的将某过程指定为该事件呢,谢谢,在线等待!

procedure TfrmMain.AcadDocument1BeginClose(Sender: TObject);
{ TODO : 当CAD关闭时有此事件 }
begin
msg('AutoCAD已关闭!');
StatusBar1.Panels[0].Text:='未链接';
end;

procedure TfrmMain.mnuLinkCADClick(Sender: TObject);
{ TODO : 连接CAD }
var
AcadApp:OleVariant;
begin
try
AcadApp:=GetActiveOleObject('AutoCAD.Application');
AcadDocument1:=Acadapp.ActiveDocument;
  //★以下一行即动态的为一个OLE自动化变量指定一个事件程序,但是运行时却通不过
AcadDocument1.OnBeginClose:=AcadDocument1BeginClose(Sender as TObject);

msg('链接 AutoCAD 成功!版本:'+
AcadApp.Version+#13+#13+
'当前图形文件:'+#13+#13+AcadApp.ActiveDocument.FullName,'I');

StatusBar1.Panels[0].Text:='已链接至AutoCAD '+AcadApp.Version;
except
StatusBar1.Panels[0].Text:='未链接';
end;
end;

相同帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2988831
 
后退
顶部