Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

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 описана глобально, значит и объект
должон существовать!!

Ответить   Sat, 20 Dec 2003 14:05:17 +0500 (#38968)

 

Ответы:

Здравствуйте, Шистеров.

-cut-

Может я чайник, но я не понял, какой смысл в присваивании процедуры
TForm1.FormClick(Sender: TObject)?
Я так понял, что b_FACAD и b_Alert это кнопки.Так?
А в TForm1.b_FACADClick AcadApplication<>nil как я понимаю? Если так,
то попробуй ее в разделе public объявить. тогда точно обнуляться не
будет.

Ответить   Mon, 22 Dec 2003 16:01:59 +0300 (#40497)

 

Здравствуйте, etoh,

Monday, December 22, 2003, 6:01:59 PM, вы писали:


Я разобрался уже! Вся проблема в том, что в ТЛБ-файле был описан тип,
как у меня переменная. Я содрал пример и хотел поработать так, как мне
надо, а так не захотело. Переименовал переменную AcadApplication в
другую и заработало! А по поводу присваивания - это просто, "мертвому
припарка". От безысходности, мысли не было, вот и делал всякую хню!!
:))

Ответить   Tue, 23 Dec 2003 12:46:52 +0500 (#40552)