Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Try ... Except не перехватывает ошибку [D7, WinXP]


VirusO4eK ©   (2010-02-04 21:17:00) 

Try
// пытаемся присоединиться к уже запущенной копии AutoCad
   v := GetActiveOleObject('AutoCAD.Application');    
 Except
// если не получилось присоединиться, то запускаем новую копию AutoCad
   v:= CreateOleObject('AutoCAD.Application');
 end;

Почему ошибка не перехватывается?

[img] http://img189.imageshack.us/img189/6193/123vhv.jpg[/img]


brother   (2010-02-05 04:56:00) [1]

> v.ActiveDocument.SendCommand('(load "d:\\Work\\Диплом\\Прога\\ cherv1.lsp
> ")' + #13);

Уж не чертеж "червяка" там? Что за институт? Не тяжелого машиностроения? ;)


Германн   (2010-02-05 01:33:00) [2]


> Плохиш ©   (05.02.10 00:14) [13]
>
>
> > Это отладчик ерунду порет!
>
>

Имхо "ерунду порет" не отладчик, а кто-то другой! Отладчик честно отрабатывает вложенные в него деньги.


Плохиш   (2010-02-05 00:14:00) [3]


> Это отладчик ерунду порет!

Плохому танцору известно, что мешает...


VirusO4eK   (2010-02-04 23:10:00) [4]

Все понял.
Это отладчик ерунду порет!
Всем спасибо.


VirusO4eK   (2010-02-04 23:04:00) [5]


> Anatoly Podgoretsky

Блин. Ты спросил: как у меня?. Я тебе написал.


> Медвежонок Пятачок

Какой проект? Проект чего?


Anatoly Podgoretsky   (2010-02-04 23:00:00) [6]

> VirusO4eK  (04.02.2010 22:49:09)  [9]

Ты понимаешь, что тебе пишут, или чукча не читатель.


VirusO4eK   (2010-02-04 22:49:00) [7]

Запускаю программу.
Жму кнопку.
Вот код:
function GetAcadApplication(Visible: Boolean): IAcadApplication;
var
 v : OleVariant;
begin
 Try
// пытаемся присоединиться к уже запущенной копии AutoCad
   v := GetActiveOleObject('AutoCAD.Application');
   
 Except
// если не получилось присоединиться, то запускаем новую копию AutoCad
   v:= CreateOleObject('AutoCAD.Application');
 end;
// приводим переменную типа OleVariant к типу IAcadApplication
 Result := IDispatch(v) as IAcadApplication;
// далее проверяем, надо ли делать приложение AutoCad видимым
 if Visible then Result.Visible := True;
 v.ActiveDocument.SendCommand('(load "d:\\Work\\Диплом\\Прога\\cherv1.lsp")' + #13);
 v.ActiveDocument.SendCommand('(detal)' + #13);
end;

procedure TForm1.N6Click(Sender: TObject);
var
f: TStrings;
begin
f:=TStringList.Create();
f.LoadFromFile('d:\Work\Диплом\Прога\cherv.lsp');
f.Add('  (defun InitSize()');
f.Add('  (setq a1  '+floattostr(round(strtofloat(form13.Edit3.Text)))+')');
f.Add('  (setq a2  '+floattostr(round(strtofloat(form13.Edit2.Text)))+')');
f.Add('  (setvar "cmdecho" 0) (setvar "osmode" 0) (command "_erase" "_all" "")  (command "_view" "_front" ))');
f.SaveToFile('d:\Work\Диплом\Прога\cherv1.lsp');
f.Free;
// присоеденимся к приложению AutoCad
AcadApp:= GetAcadApplication(true);
end;


Если Автокад запуще то все работает норм.
Если нет, то ошибку пишет.

<img> http://img189.imageshack.us/img189/6193/123vhv.jpg


Медвежонок Пятачок   (2010-02-04 22:30:00) [8]

Конечно, Автокад отдельно нормально запускается.

Отдельно должен запускться проект а не автокад


Anatoly Podgoretsky   (2010-02-04 22:29:00) [9]

> VirusO4eK  (04.02.2010 22:25:06)  [6]

А у тебя как?


VirusO4eK   (2010-02-04 22:25:00) [10]


> Anatoly Podgoretsk


Конечно, Автокад отдельно нормально запускается.

Также, если запустить автокад, а потом программу то все нормально работает.
А мне надо чтоб проверяло, если Автокад не запущен то, чтоб запускало.
А если запущен, то чтоб использовало его, а не создавало новую копию.


Anatoly Podgoretsky   (2010-02-04 22:16:00) [11]

> VirusO4eK  (04.02.2010 21:17:00)  [0]

А пробовал нажать ОК и затем F9 или запустить не из Дельфи


Медвежонок Пятачок   (2010-02-04 22:10:00) [12]

запуск из под иде.
потому что.


Медвежонок Пятачок   (2010-02-04 22:09:00) [13]

эту пестню не задушишь не убъешь
напевает молодешшь, молодешшь


VirusO4eK   (2010-02-04 21:51:00) [14]


> Anatoly Podgoretsky


Если окно Автокада не запущено, то программа должна запустить его.
А ошибку выдает на "v := GetActiveOleObject('AutoCAD.Application');"

Инфа отсюда: http://www.delphimaster.ru/articles/autocad/index.html

Во скрин:
<img> http://img189.imageshack.us/img189/6193/123vhv.jpg</img>


Anatoly Podgoretsky   (2010-02-04 21:42:00) [15]

> VirusO4eK  (04.02.2010 21:17:00)  [0]

Перехватываются только исключения.


Наверх

Титульная страница Поиск, карта сайта Написать письмо