Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытие Word без WordApplication

1.2K
17 ноября 2005 года
richel
142 / / 20.01.2005
Подскажите, пожалуйста, код открытия вордовского документа с использованием OLE через OpenDialog1->FileName.
Везде коды на Делпфи и не тог, что мне нужно.
Заранее благодарна!
246
17 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by richel
Подскажите, пожалуйста, код открытия вордовского документа с использованием OLE через OpenDialog1->FileName.
Везде коды на Делпфи и не тог, что мне нужно.
Заранее благодарна!



запускаете Word, в нем ставите на запись макрос, делаете все, что вам нужно и смотрите чего получилось...

 
Код:
Variant Word;

    Word = CreateOleObject("Word.Application.8");
    Word.Exec(PropertySet("Visible") << true);
    //Word.Exec(PropertySet("WindowState") << 1);
    //вот оно
    Word.Exec(PropertyGet("Documents")).Exec(Procedure("Open") << "InFile.doc" << false);

    ...
1.2K
17 ноября 2005 года
richel
142 / / 20.01.2005
Спасибо большое! В итоге у меня получилось:
 
Код:
if(!OpenDialog1->Execute()) return;
 AnsiString fname;
 fname = OpenDialog1->FileName;

   Wapp = CreateOleObject("Word.Application.8");
   Wapp.Exec(PropertySet("Visible") << true);
   Wapp.Exec(PropertySet("WindowState") << 1);
   Wapp.Exec(PropertyGet("Documents")).Exec(Procedure("Open") << fname.c_str() << false);

Скажите пожалуйста, когда пишут Word.Application.10, это какая версия Ворда?
246
17 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by richel
Спасибо большое! В итоге у меня получилось:
 
Код:
if(!OpenDialog1->Execute()) return;
 AnsiString fname;
 fname = OpenDialog1->FileName;

   Wapp = CreateOleObject("Word.Application.8");
   Wapp.Exec(PropertySet("Visible") << true);
   Wapp.Exec(PropertySet("WindowState") << 1);
   Wapp.Exec(PropertyGet("Documents")).Exec(Procedure("Open") << fname.c_str() << false);

Скажите пожалуйста, когда пишут Word.Application.10, это какая версия Ворда?


ХР

1.2K
17 ноября 2005 года
richel
142 / / 20.01.2005
Цитата:
Originally posted by GIZMO
ХР


Спасибо, все ясно. Можно написать просто Application. Ошибки нет.

246
17 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by richel
Спасибо, все ясно. Можно написать просто Application. Ошибки нет.


Да. Так можно если не знаешь версию Word. Также можно приконнектится к уже запущенному Word - GetActiveOleObject(). Еще ИМХО (смешное слово) TWordApplication лучше не пользоваться, это жирный тормоз который только демонстрирует возможности TLIBIMP.ехе и не более того.

1.2K
18 ноября 2005 года
richel
142 / / 20.01.2005
Цитата:
Originally posted by GIZMO
Да. Так можно если не знаешь версию Word. Также можно приконнектится к уже запущенному Word - GetActiveOleObject(). Еще ИМХО (смешное слово) TWordApplication лучше не пользоваться, это жирный тормоз который только демонстрирует возможности TLIBIMP.ехе и не более того.


Вот как раз мне и нужно рассчитать на любую версию Ворда.
В что касается TWordApplication, я его изучила прекрасно и умею создавать любые сложные отчеты. Вот в том и недостаток, что тормоз этого компонента ощутила в полной мере. С Экселом стала сразу работать через OLE сервер. Он отрабатывает все мгновенно. А вот в Ворде пошла по неправильному пути, поскольку, в основном, все рекомендации идут для WordApplication.
Еще раз спасибо за помощь.:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог