![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
Перехватываются только исключения.