Здравствуйте!
Пишу программку в Delphi7. Она должна работать в том числе и на машинах, где Компас не установлен, а там где установлен, просто добавлялась бы возможность просмотра чертежей.
Поставил я на форму компонент KGAX.
И тут возникла такая проблема: если Компас не установлен, то при создании формы возникает ошибка EoleSysError. Естественно, если Компаса нет, то просмотр никак не возможен, но хотелось бы чтобы программа хотя бы запускалась :)
Подскажите пожалуйста, как можно отловить эту ошибку.
В то же время, если использовать обычный Ole Container, то никаких ошибок не возникает, чертеж просто не показывается и все. Но хотелось бы использовать функционал компонента KGAX.
Я также пробовал создавать KGAX вручную в событии OnCreate формы, чтобы можно было поймать и обработать Exception. Но создать компонент не удалось.
Я наверное не все необходимые свойства задал? Делаю вот так:
try
KGAX1:=TKGAX.Create(Panel2);
KGAX1.Align:=alClient;
KGAX1.DocumentType:=vt_SheetUser;
KGAX1.BringToFront; // на всякий случай
KGAX1.Show;
except
Showmessage ('Компас не установлен');
end;
С созданием компонента KGAX вручную все получилось, работает как надо.
1-й вопрос остается в силе. Как сделать так, чтобы этот компонент вытаскивать из палитры, но при запуске программы (при создании формы) ошибка не выскакивала при отсутствии Компаса?
Ни как не сделать. Без КОМПАСа компонент работать не будет.
Наверное там где он, КОМПАС, совсем не нужен, можно демо-версию поставить. И с ее помощью смотреть документы в KGAX
Первую проблему с запуском программы при отсутствии Компаса решил. Теперь есть другой вопросик.
А можно ли сделать так, чтобы при открытии документа в компоненте KGAX он появлялся именно в нем, а не в Компасе?
То есть, если Компас не запущен (или запущен, но в нем не открыт ни один документ), то чертеж нормально показывается в KGAX. Но если в Компасе уже открыт какой-нибудь чертеж, а я открываю другой в KGAX, то этот чертеж появляется в окне Компаса, а не в моем компоненте.