Проблема с получением указателя на KompasObject из САПР ТП Вертикаль

Автор oit, 22.08.08, 10:38:06

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

oit

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

возникла следующая проблема:

при создание эскиза из САПР ТП Вертикаль v2 SP3 запускаю свою библиотеку rtw, после чего вываливается компас,
в тоже время если поднять библиотеку без Вертикали, из Компаса, работает библиотека на ура

//--------------- точка входа в библиотеку --------------------------
procedure LIBRARYENTRY(command: WORD); Pascal;
begin
  Kompas := KompasObject(CreateKompasObject);
  IF Kompas = nil then
  begin
    ShowMessage('Не удалось получить указатель на KompasObject');
    exit;
  end;
  iDocument2D := ksDocument2D(Kompas.ActiveDocument2D);
  IF iDocument2D = nil then
  begin
    Kompas.ksMessage('Документ не является фрагментом ил чертежом');
    exit;
  end;
  case command of
  1:Run(1);
  2:Run(2);
  4:Run(4);
  7:Run(7);
  10:Run(10);
  13:Run(13);
  16:Run(16);
  19:Run(19);
  end;
  iDocument2D:=nil;
  Kompas :=nil;
end;

//-------------------------------------
Получается что при запуска компаса из вертикали - Kompas - nil, не возращается указатель на KompasObject

подскажите как обойти эту проблему



oit

нашлось вот такое решение

вместо Kompas := KompasObject(CreateKompasObject);
используем классику
  try
    Kompas := GetActiveOleObject('KOMPAS.Application.5') as KompasObject;
  except
    Kompas := CreateOleObject('KOMPAS.Application.5')as KompasObject;
  end;
.....
причем работает если Kompas не отправлять в nil после того как отработал объект//Kompas :=nil