AutoCAD из Delphi
Всем привет!!
---------------------------Такой пример:
var
Form1: TForm1;
AcadApplication: IAcadApplication;
implementation
{$R *.dfm}
procedure TForm1.b_FACADClick(Sender: TObject);
begin
Try
// Пытаемся найти активный AutoCAD
AcadApplication := GetActiveOleObject('AutoCAD.Application') as IAcadApplication;
except
// Если работающий AutoCAD не найден
statusBar1.Panels[0].Text:='Ошибка соединения с AutoCAD';
end;
if AcadApplication <> nil then
begin
// делать, что надо
statusBar1.Panels[0].Text:='Ура!! Мы нашли работающий AutoCAD!';
statusBar1.Panels[0].Text:=statusBar1.Panels[0].Text+
' Файл = ' + AcadApplication.ActiveDocument.Name;
//Послылаем макрос в командную строку, добавляя нажатие Enter
//AcadApplication.ActiveDocument.SendCommand('(alert "Привет от Delphi")'
+ #13);
end;
end;
procedure TForm1.b_AlertClick(Sender: TObject);
begin
if AcadApplication = nil then
begin
application.MessageBox('Есть, ГАД!!','Warning',0);
AcadApplication.ActiveDocument.Activate;
//Послылаем макрос в командную строку, добавляя нажатие Enter
AcadApplication.ActiveDocument.SendCommand('(alert "Привет от Delphi")' +
'#13');
end else
statusbar1.Panels[0].Text:='Уже нету !!';
end;
procedure TForm1.FormClick(Sender: TObject);
begin
if AcadApplication = nil then
AcadApplication :=nil;
end;
---------------------------конец примера
Вопрос, Почему после TForm1.b_FACADClick, объект AcadApplication =
nil? Переменная AcadApplication описана глобально, значит и объект
должон существовать!!
Здравствуйте, Шистеров.
-cut-
Может я чайник, но я не понял, какой смысл в присваивании процедуры
TForm1.FormClick(Sender: TObject)?
Я так понял, что b_FACAD и b_Alert это кнопки.Так?
А в TForm1.b_FACADClick AcadApplication<>nil как я понимаю? Если так,
то попробуй ее в разделе public объявить. тогда точно обнуляться не
будет.