Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS Word OleContainer, Получить доступ к Document. 
V
    Опции темы
rith2
Дата 5.5.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 29.4.2008

Репутация: нет
Всего: нет



Привет

В ActiveForm поместил OleContainer и сохранил как .ocx. Подразумевается, что стороннее приложение написанное на Python будет загружать свои документы MS Word  в этот компонент. Метод загрузки документа MS Word:

Код

procedure TOLEContainerX.Open(const Value: WideString); // Value - Путь к документу.doc
var
   v:OleVariant;
   Doc:_Document;
   empty:OleVariant;
begin
  v := Value;
  OleContainer.CreateObjectFromFile(Value, False);
  OleContainer.DoVerb(ovShow);
  Doc:=(OleContainer.OleObjectInterface as _Document);
  Doc.Application.Documents.Open(v, empty, empty, empty, empty, empty, empty, empty, empty, empty);
  Doc.Application.Run('"InsText"'); //Пытаюсь вызвать макрос
  Doc.Application.Visible := True;


Из Python получается получить доступ к этой библиотеке и вызвать метод. В OleContainer'е открывается необходимый документ, но я не могу выполнять в нем операции. например не выполняется строка - Doc.Application.Run('InsMac'). То есть методы вроде бы отрабатывают, но на открытом документе это никак не сказывается.

В чем моя ошибка? Может быть неправильно получаю доступ к документу?
PM MAIL   Вверх
rith2
Дата 5.5.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 29.4.2008

Репутация: нет
Всего: нет



Забыл добавить: тип _Document из стандартной библиотеки в Delphi 7 - Word97
PM MAIL   Вверх
rith2
Дата 5.5.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 29.4.2008

Репутация: нет
Всего: нет



Вот так все работает

Код

  v := Value;
  OleContainer.CreateObjectFromFile(Value, False);
  OleContainer.DoVerb(ovShow);
  Doc:=(OleContainer.OleObjectInterface as _Document);


Оказывается еще на стороне Python'a дофига косяков было... ща все работает. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.