• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Views.ActiveView

Автор prog1, 21.07.17, 16:31:16

« назад - далее »

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

prog1

Библиотека вылетает (Access violation) на строчке View := Views.ActiveView;
Вроде бы всё стандартно....
В компасе открыт чертёж. Обращение по номеру вида - тоже вылетает.

--------------------------------------------
   NewDoc : IKompasDocument2D;
   ViewsAndLayersManager : IViewsAndLayersManager;
   Views : IViews;
   View  : IView;
begin
NewDoc := newKompasAPI.ActiveDocument As IKompasDocument2D;
ViewsAndLayersManager := NewDoc.ViewsAndLayersManager;
Views:=ViewsAndLayersManager.Views;
View := Views.ActiveView;     //Здесь вылетает
if( View = nil ) then Showmessage('View = nil')else Showmessage('View = Ok') ;
------------------------------


Покажу, Вам картинку - http://forum.ascon.ru/index.php?action=dlattach;topic=24881.0;attach=52405;image
Вы, оптимист - NewDoc := newKompasAPI.ActiveDocument As IKompasDocument2D;
Почему, Вы решили, что активный документ именно 2D, где проверки, ах, да после вылета?
У Вас, ViewsAndLayersManager = nil.

prog1

Проверки идут при запуске  - они на другом Kompas (API5).
  if Doc=nil then
Kompas.ksMessage('Текущий документ не является чертежом или фрагментом')

API7 пока под Button подвязан, чтобы попробовать с ним работать(потребуется реализация размера, обозначения). Увы, не получилось.

Спасибо за скрин, однако не нахожу принципиальных отличий, а, следовательно, и ошибки.

--------------------------
ViewsAndLayersManager := NewDoc.ViewsAndLayersManager;
if( ViewsAndLayersManager = nil ) then Showmessage('ViewsAndLayersManager = nil')else Showmessage('ViewsAndLayersManager = Ok') ;
Views:=ViewsAndLayersManager.Views;
if( Views = nil ) then Showmessage('Views = nil')else Showmessage('Views = Ok') ;
------------------
ViewsAndLayersManager=Ok, Views =Ok
Мало того: Showmessage(Inttostr(Views.Count)) =2
а вот Showmessage(Views.ActiveView.Name) - вываливается

Views.Reference=0
ViewsAndLayersManager.Reference=0


prog1

Моя настойчивость граничит с назойливостью. Извините...

Может c библиотекой что-то не так...
Access violation ....in module KAPI7.DLL

Сделайте регистрацию http://forum.ascon.ru/index.php/topic,27301.msg204118.html#msg204118.
Вообще, есть отладчик, я всего, что Вы делаете, не вижу.

prog1

Это испробовано - Не помогает
(Сделана регистрация успешно)