Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Delphi => Тема начата: ASV от 28.04.08, 10:38:14

Название: Компонент KGAX при отсутствии Компаса
Отправлено: ASV от 28.04.08, 10:38:14
Здравствуйте!
Пишу программку в 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;
Название: Re:Компонент KGAX при отсутствии Компаса
Отправлено: ASV от 28.04.08, 13:03:42
С созданием компонента KGAX вручную все получилось, работает как надо.
1-й вопрос остается в силе. Как сделать так, чтобы этот компонент вытаскивать из палитры, но при запуске программы (при создании формы) ошибка не выскакивала при отсутствии Компаса?
Название: Re:Компонент KGAX при отсутствии Компаса
Отправлено: chelkar от 28.04.08, 18:50:09
Ни как не сделать. Без КОМПАСа компонент работать не будет.
Наверное там где он, КОМПАС, совсем не нужен, можно демо-версию поставить. И с ее помощью смотреть документы в KGAX
Название: Re:Компонент KGAX при отсутствии Компаса
Отправлено: ASV от 02.09.08, 07:57:17
Первую проблему с запуском программы при отсутствии Компаса решил. Теперь есть другой вопросик.

А можно ли сделать так, чтобы при открытии документа в компоненте KGAX он появлялся именно в нем, а не в Компасе?
То есть, если Компас не запущен (или запущен, но в нем не открыт ни один документ), то чертеж нормально показывается в KGAX. Но если в Компасе уже открыт какой-нибудь чертеж, а я открываю другой в KGAX, то этот чертеж появляется в окне Компаса, а не в моем компоненте.