Поиск:

Ответ в темуСоздание новой темы Создание опроса
> При закрытии программы закрывается и Word 
:(
    Опции темы
Нитонисе
Дата 16.1.2010, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Использую компонент WordApplication для генерации отчета в Word.
Подключаюсь к Word командой WordApplication1->Connect();. КОгда же я закрываю свою программу, то и Word тоже хочет закрыться, предлагая сохранить изменения. Как этого избежать?
И еще, как из программы узнать, открыт сейчас Word или нет?
PM MAIL   Вверх
sawfish
Дата 16.1.2010, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2008
Где: Новосибирск

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



Свойства:
ConnectKind - определяет как осуществляется соединение с сервером и может принимать следующие значения:
- ckNewInstance - всегда создавать новый экземпляр сервера
- ckRunningOrNew - присоединиться к выполняемому серверу или создать новый экземпляр
- ckRunningInstance - Только присоединиться к выполняющемуся серверу
- ckRemote - Присоединиться к удалённому серверу Сочетается со свойством RemoteMachineName
- ckAttachToInterface - не присоединяться к серверу. Вместо этого приложение обеспечивает интерфейс методом ConnectTo

AutoConnect - определяет, должен ли запускаться сервер при запуске приложения
AutoQuit - обеспечивает автоматическое закрытие Word-а при завершении приложения
RemoteMachineName - Удалённый компьютер, накотором выполняется сервер и к которому необходимо присоединиться

Среди множества свойств стоит обратить внимание на свойство ActiveDocument - активный документ. Это объект Document. Также к документу можно обращаться через свойство Documents, представляющий из себя массив открытых на данный момент документов (Document). Соответственно у этого свойства есть свойство Count показывающая общее количество открытых документов. Своиство только для чтения и используется для проверки, есть ли хоть один открытый документ. Создание нового документа осуществляется методом Add.
PM MAIL   Вверх
Нитонисе
Дата 16.1.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sawfish, ворд закрывается с закрытием моей программы при 
Код

ConnectKind - определяет как осуществляется соединение с сервером и может принимать следующие значения:
- ckNewInstance - всегда создавать новый экземпляр сервера
- ckRunningOrNew - присоединиться к выполняемому серверу или создать новый экземпляр

При остальных значениях даже не запускается.
Присоединяюсь к ворду так:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
WApp->Connect();
WApp->set_Visible(true);
WApp->Documents->Add();
}

Свойства AutoConnect и AutoQuit понятны и не влияют на закрытие ворда при закрытии моей программы. Ворд всегда закрывается тоже.

Это сообщение отредактировал(а) Нитонисе - 16.1.2010, 14:49
PM MAIL   Вверх
sawfish
Дата 18.1.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2008
Где: Новосибирск

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



Вот очень топорный пример.
AutoConnect=false;
AutoQuit=false;
По кнопке создается документ, печатаю там ручками, при закрытии программы если документ не сохранен, то сохраняется и закрывается. Без разговоров.
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    WA->Connect();
    WA->set_Visible(true);
    WA->Documents->Add();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    if (!WA->ActiveDocument->Saved)
    {   WA->ActiveDocument->SaveAs(TVariant("c:\\tmp.doc"));
    }
    WA->Quit();
}



Или нужно, чтоб совсем не закрывался Word?  smile 

Это сообщение отредактировал(а) sawfish - 18.1.2010, 13:30
PM MAIL   Вверх
Нитонисе
Дата 18.1.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sawfish @  18.1.2010,  13:22 Найти цитируемый пост)
Или нужно, чтоб совсем не закрывался Word?

Да, нужно чтобы программа запускала Word кидала туда информацию и отпускала в свободное плавание. 
PM MAIL   Вверх
sawfish
Дата 18.1.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2008
Где: Новосибирск

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



На данный момент могу предложить следующее:
1) сохранить файл;
2) отключиться от данного документа;
3) запустить Word с параметром (WinExec), в качестве которого - этот файл.
Тогда закрытие приложения не должно генерить никаких событий, связанных с этим файлом.
Пишу "не должно", т.к. метод не проверенный.
PM MAIL   Вверх
Нитонисе
Дата 18.1.2010, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sawfish @  18.1.2010,  18:09 Найти цитируемый пост)
На данный момент могу предложить следующее:1) сохранить файл;2) отключиться от данного документа;3) запустить Word с параметром (WinExec), в качестве которого - этот файл.Тогда закрытие приложения не должно генерить никаких событий, связанных с этим файлом.Пишу "не должно", т.к. метод не проверенный.

При таком методе ворд сначала закроется, а потом откроется. Задача будет решена, но очень уж коряво.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

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

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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