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

 
Word & Ole сервер
laifik
  Отправлено: 21.11.2005, 13:41


Дежурный стрелочник

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



Помогите, пожалуйста, исправить ошибку.
Составила такой код:
CODE

Variant Wapp, Wdocs, Wdoc, Range, Table, Cell, Footers;
Variant ft=  "wdHeaderFooterPrimary";

Wdocs = Wapp.OlePropertyGet("Documents");
Wdoc=Wapp.OlePropertyGet("ActiveDocument");
Range =  Wdoc.OlePropertyGet("Sections").OleFunction("Item",1);
Footers = Range.OlePropertyGet("Footers", ft).OlePropertyGet("Range");
Table = Range.OlePropertyGet("Tables").OleFunction("Item",1);

       Cell = Table.OleFunction("Cell", 1, 6);
       Variant v = Cell.OlePropertyGet("Range").OlePropertyGet("Text");
       ShowMessage(v);

Код компелируется, ошибки не выдает. Но при запуске .exe в ходе выполнения выдается результат "Неверный тип переменной". Это явно относится к wdHeaderFooterPrimary.
Но нигде в интернете не могу найти, как записывается эта переменная для варианта OLE или каким кодом она заменяется. sad.gif
laifik
Отправлено: 21.11.2005, 14:11


Дежурный стрелочник

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



Одному богу известно, как я решила эту задачу. Этот код работает, как мне нужно.
CODE

Variant Wapp, Wdocs, Wdoc, Range, Table, Cell, Footers;
Wdocs = Wapp.OlePropertyGet("Documents");
Wdoc=Wapp.OlePropertyGet("ActiveDocument");
Range =  Wdoc.OlePropertyGet("Sections").OleFunction("Item",1);
Footers = Range.OlePropertyGet("Footers").OleFunction("Item",1).OlePropertyGet("Range");
Table = Footers.OlePropertyGet("Tables").OleFunction("Item",1);

       Cell = Table.OleFunction("Cell", 1, 6);
       Variant v = Cell.OlePropertyGet("Range").OlePropertyGet("Text");
       ShowMessage(v);

Но кто мне объснит, почему вместо wdHeaderFooterPrimary мне пришлось написать OleFunction("Item",1)? Где об этом написано?
Rius
Отправлено: 22.11.2005, 06:43


Мастер участка

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



в файле word_xp.h
CODE
typedef enum WdHeaderFooterIndex
{
 wdHeaderFooterPrimary = 1,
 wdHeaderFooterFirstPage = 2,
 wdHeaderFooterEvenPages = 3
} WdHeaderFooterIndex;

там много чего еще написано wink.gif
laifik
Отправлено: 22.11.2005, 15:45


Дежурный стрелочник

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



Спасибо. Я уже отыскала в интернете. Но что-то не возникала мысль полпзать по этому файлу. Теперь мне это странно... cool.gif

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