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;
程序的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;