C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Ole-Automation (Mathcad), Проблемы написания контроллера
Гость_Eugene
Отправлено: 22.08.2003, 13:35


Не зарегистрирован







У меня возникли проблемы с написанием контроллера, который должен работать с документами и возможностями Mathcad`а.
У меня стоит Mathcad2001 Professional , С++ Builder 5.0 (Build 12.34),Win2000 5.00.2195 SP2.

При создании объекта Mathcad:
CODE
    Variant mcad = Variant::CreateObject("Mathcad");
mcad содержит интерфейc IMathCad.
Используя метод OlePropertyGet можно получить интерфейс IMathcadApplication через свойства "Parent" и "Application"
CODE
    Variant appl = mcad.OlePropertyGet("Parent");

Через интерфейс IMathcadApplication (appl) окно приложения Mathcad можно сделать выдимым, изменять его размеры и все.
CODE
    appl.OlePropertySet("Visible",(Variant)true);
    appl.OlePropertySet("Height",(Variant)50);
Открыть какой-либо фаил никак не могу.

Мне кажется, что надо получить интерфейс IMathcadDocuments, у которого есть методы Add, Open и др.
Его можно получить через свойство "Documents" интерфейса IMathcadApplication,
CODE
    Variant docs = appl.OlePropertyGet("Documents");    
но это вызывает ошибку EOleSysError "Ошибка".

Использование компоненты OleContainer вообще ничего не дает. Я вставляю в него файл от Mathcad. При попытке доступа через интерфейсы, получаемые с помощью методов OleContainer1->OleObjectInterface и OleContainer1->StorageInterface, к какому-либо свойству или методу вызавается сообщение "_ASSERTE:" ""IsBound() @....utiicls.h / 4119 .... " и ошибка.

Вопросы:
Как открыть какой-нибудь файл, если не используется OleContainer?
Как правильно использовать OleContainer?
Где можно взять какое-нибудь описание работы с OLE сервером Mathcad`а?
Что я делаю не так?
Георгий
Отправлено: 22.08.2003, 21:31


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



c OLE я плохо знаком, но говорят, что BCB 6 работает с OLE куда лучше, чем пятый — попробуй BCB 6 — может поможет

Вернуться в Вопросы программирования в C++Builder