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

 
Word+Builder, Небольшая проблема
ekya
  Отправлено: 22.07.2003, 23:26


Ученик-кочегар

Группа: Участник
Сообщений: 27



По аналогии с Excel'ем написал следующий код:

TMyWord::TMyWord(String File)
{
// если Word запущен — подключиться к нему
try {
App=Variant::GetActiveObject("Word.Application");
} catch(...) {
// Word не запущен — запустить его
try { App=Variant::CreateObject("Word.Application"); } catch (...) {
;
} }
try {
if(File!="")
App.OlePropertyGet("Documents").OleProcedure("Open",File);
else
App.OlePropertyGet("Documents").OleProcedure("Add");
// Doc=App.OlePropertyGet("Documents", 1); <-- Это выполнять не хочет
Doc=App.OlePropertyGet("ActiveDocument");
} catch(...) {
;
}
}

А, Item — это у них метод, т.е. return void, т.к. OleProcedure
Хочется получить указатель на объект посредством обращения через Итем или как нибудь еще.

Отредактировано ekya — 23/07/2003, 00:28
ekya
Отправлено: 24.07.2003, 21:22


Ученик-кочегар

Группа: Участник
Сообщений: 27



Я сам нашел ответ на свой вопрос.
Просьба администатору удалить данную тему.
Обещаю выложить исходники для работы с Excel и Word, как закончу свою работу.
Gadzila
Отправлено: 25.07.2003, 11:18


Ученик-кочегар

Группа: Участник
Сообщений: 21



Я и сам наткнулся на такую бороду,
потом пошел не через Word.Application а через Word.Basic,
прокатило нормально, хоть там и чуть по другому.
Но заткнулся на переходе на закладку, несмотря на FAQ39.
А как ты свою проблемму решил?
ekya
Отправлено: 05.08.2003, 18:10


Ученик-кочегар

Группа: Участник
Сообщений: 27



Просто это Сишное понимание: нет процедур одни функции!!!

Item надо вызывать как OleFunction

Пример:

Doc.OlePropertyGet("FormFields").OleFunction("Item",name).OlePropertySet("Result", WideString(data));

и не надо использовать Word.Basic, хотя ...

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