powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Еще раз Builder + Word
10 сообщений из 10, страница 1 из 1
Еще раз Builder + Word
    #32376462
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил поизучать Builder (раньше занимался дельфи), который день мучаюсь на элементарных местах. Ну не хватает если знаний...
1. Необходимо открыть шаблон Word'а

TIniFile *ConfigFile;
AnsiString strTemp;
try
{
ConfigFile = new TIniFile(ExtractFilePath(Application->ExeName) + "Config.ini");
if (Main->Tag == 0) strTemp = ConfigFile->ReadString("Template","ConsPath","");
else strTemp = ConfigFile->ReadString("Template","AllPath","");
if (strTemp != "")
try
{
// Создание Word
WordApp = Variant::CreateObject("Word.application");
WordApp.OlePropertySet("Visible",(Variant)True);
Variant my_docs;
Variant this_doc;
my_docs = WordApp.OlePropertyGet("Documents");

this_doc = my_docs.OleFunction("Open", strTemp);
}
catch (Exception &e)
{
Application->MessageBox("Ошибка загрузки шаблона в Word!", Application->Title.c_str(),
MB_OK | MB_ICONERROR | MB_DEFBUTTON2);
}
}
__finally
{
delete ConfigFile;
}

Выдает - неверный тип переменной... А какой он должен быть то?
Пробовал - this_doc = my_docs.OleFunction("Open", (Variant)strTemp);

2. Как вставить данные по Bookmark?
3. Как вставить данные в уже имеющуюся таблицу

Желательно привести примеры, т.к. как это делается в дельфи знаю. Не знаю синтаксиса C++.

Примеры можно присылать на dhel@km.ru
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32377100
MaximV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю что-то типа этого:

TVariant Template = "имя_шаблона";
WordApplication->Connect();
WordApplication->Documents->Add(&Template, EmptyParam);

// вставка по метке
TVariant ovWhat = wdGoToBookmark;
TVariant Bookmark = "метка";
WordApplication->Selection->GoTo(&ovWhat, EmptyParam, EmptyParam, &Bookmark);
WordApplication->Selection->TypeText(WideString("значение"));

// вставка в таблицу
TVariant D = 1;
TVariant T = 1;
WordApplication->Documents->Item(&D)->get_Content()->Tables->Item(&T)->Cell(1,1)->Range->Text = WideString("значение");

WordApplication->Visible = true;

WordApplication - компонент типа TWordApplication.
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32377820
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо! Но так и не попробовал ваш вариант. А как сделать тоже самое поздним связыванием?
У теперь у меня новая ошибка. Добавляю компонент WordApplication с палитры Office2k. У меня в проекте используются компоненты Eh. Так вот теперь возникает ошибка - [C++ Error] ToolCtrlsEh.hpp(488): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'
Что делать???
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32378472
MaximV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в проекте тоже используютя компоненты Eh, но таких проблем нет.
Может быть разные версии Eh. У меня 2.2. Посмотрю свой ToolCtrlsEh.hpp.
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32378613
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня билдер стоит дома, на работе только дельфи (из того же установочного пакета) - Ehlib v3.1
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32378671
MaximV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая строка № 488 в ToolCtrlsEh.hpp?
В моей версии 2.3 такой строки нет.
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32378684
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дома посмотрю, вечерком точно скажу.
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32379079
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
virtual void __fastcall DrawItem(int Index, const Types::TRect &Rect, Windows::TOwnerDrawState State);

Ругается на Windows...
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32381512
MaximV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень странно....
Есть в ToolCtrlsEh.hpp строка #include <Windows.hpp>?
...
Рейтинг: 0 / 0
Еще раз Builder + Word
    #32434830
Mifishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>Так вот теперь возникает ошибка - [C++ Error] ToolCtrlsEh.hpp(488): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'
Что делать???

у меня было:
[C++ Error] FileCtrl.hpp(70): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

на этой строке

virtual void __fastcall DrawItem(int Index, const Types::TRect &Rect, Windows::TOwnerDrawState State);

так вот, нашел здесь http://]http://www.cbuilder.ru/progi/forum_answer.php?id=1331&nn=390 совет и мне помог.

Сделал так

virtual void __fastcall DrawItem(int Index, const Types::TRect &Rect, ::TOwnerDrawState State);

и заработало :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Еще раз Builder + Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]