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

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

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

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

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

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

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

Получить указатель на документ открытый в OLE-контейнере

Автор mkrz, 10.08.09, 11:27:51

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

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

mkrz

Исходные данные:
на форме моего приложения расположен OLE-контейнер и ListBox.
Задача:
1. Открыть в OLE-контейнере выбранный чертеж.
2. Заполнить ListBox объектами из чертежа в OLE-контейнере.
Проблемы:
по п. 1 все в порядке:
form1.OleContainer1.CreateObjectFromFile('C:\Чертеж.cdw',false);
по п. 2 не могу получить указатель на документ открытый в OLE-контейнере.
Если кто знает подскажите. Наверняка все легко и просто только надо знать как

mkrz

Ну неужели ни кто не делал, чтобы на форме был Ole-компонент c открытым чертежом и по команде изменялся чертеж (добавлялись или удалялись объекты)? Может какие ссылки на работающие примеры есть

Sheiker

Видел пример на этом форуме, открывался компас в форме. Не Ole контейнер, но выглядил так же))
пример назывался " InMyWindow " . Там надо лишь дописать запуск Компаса в начале
if Kompas = nil then
                       begin
    Kompas:= KompasObject( CreateOleObject('Kompas.Application.5') );
    if Kompas <> nil then

      Kompas.Visible := false;
                       end;
По второму вопросу, как я понял надо считывать ...  есть методы Троцкого «Разработка САПР» тут смотри
http://edu.ascon.ru/library/methods/

Там какраз он читает дерево построения.


333

Нужно получить активный Компас
Kompas:= KompasObject( GetActiveOleObject('KompasLT.Application.5') );
далее получить активный документ

А лучше использовать KGAX.ocx

Maxagg

используйте примеры, которые вам посоветовали, но никогда ole-container, больше намучаетесь, и багов нахватаетесь  :-)))