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

Ваш аккаунт

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

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

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

Как до конца расконнектиться с Word2000?

2.2K
28 сентября 2004 года
Dani
51 / / 22.09.2004
C++ Builder 6.0.
Открываю MyShablon.dot и выбрасываю из проги данные в Ворд. После завершения расконнекчиваюсь. Видимо, при этом Ворд желает закрыться и вылазит сообщение "Сохранить ли Документ1? Да. Нет. Отмена." Приходится каждый раз жать "Отмену".
Народ, посоветуйте, что делать.
Как программно нажать "Отмену"?
Или как сделать так, чтобы Ворд не закрывался при расконнекчивании?
246
29 сентября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Dani
C++ Builder 6.0.
Открываю MyShablon.dot и выбрасываю из проги данные в Ворд. После завершения расконнекчиваюсь. Видимо, при этом Ворд желает закрыться и вылазит сообщение "Сохранить ли Документ1? Да. Нет. Отмена." Приходится каждый раз жать "Отмену".
Народ, посоветуйте, что делать.
Как программно нажать "Отмену"?
Или как сделать так, чтобы Ворд не закрывался при расконнекчивании?


Хорошо было-бы между "выбрасывания данных из проги" и "расконнективанием" закрыть файл...

Код:
Variant Word, Document, Table, Cell;
    int RowCount, ColCount;

    Word = CreateOleObject("Word.Application.8");
    Word.OlePropertySet("Visible", true);
    Word.OlePropertyGet("Documents").OleProcedure("Add");
    Document = Word.OlePropertyGet("Documents").OleFunction("Item", 1);
    Table = Document.OlePropertyGet("Tables").OleFunction("Add", Document.OleFunction("Range", 0, 0), 5, 5);
    RowCount = Table.OlePropertyGet("Rows").OlePropertyGet("Count");
    ColCount = Table.OlePropertyGet("Columns").OlePropertyGet("Count");
    for (int i=1; i <=RowCount; i++)
       for(int j=1; j <=ColCount; j++) {
        Cell = Table.OleFunction("Cell", i, j);
        Cell.OlePropertyGet("Range").OleProcedure("InsertAfter", WideString(IntToStr(i)) + WideString("-") + WideString(IntToStr(j)));
    }
    Document.OleProcedure("SaveAs", ChangeFileExt(Application->ExeName, ".doc"));//здесь...
    Word.OleProcedure("Quit");
2.2K
29 сентября 2004 года
Dani
51 / / 22.09.2004
И все бы хорошо, да только я работаю не через ОЛЕ.
Просто ставлю на форму WordAppication, называю его, например, WA1 и работаю с ним по типу:

Открываю MyShablon.dot.
...bla-bla-bla..
TVariant S;
S="Здравствуй, мир!";
WA1->ActiveDocument->Tables->Item(1)->Cell(1,1)->Range->InsertAfter(S);
...bla-bla-bla..

WA1->Disconnect();
И вот здесь-то как раз Word и порывается закрыться.
Как же это обойти?
Как программно нажать "Отмену"?
Ну как?.. :(
246
29 сентября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Dani
И все бы хорошо, да только я работаю не через ОЛЕ.
Просто ставлю на форму WordAppication, называю его, например, WA1 и работаю с ним по типу:

Открываю MyShablon.dot.
...bla-bla-bla..
TVariant S;
S="Здравствуй, мир!";
WA1->ActiveDocument->Tables->Item(1)->Cell(1,1)->Range->InsertAfter(S);
...bla-bla-bla..

WA1->Disconnect();
И вот здесь-то как раз Word и порывается закрыться.
Как же это обойти?
Как программно нажать "Отмену"?
Ну как?.. :(



1. Это все равно ОЛЕ...
2. Сохранить файл и Ворд ничего не попросит.
3. Или закрыть файл Close(...) там есть параметр подавляющий вызов "Отмены".
Close(SaveChanges, // = wdSaveChanges
OriginalFormat,
RouteDocument)

4. Вроде можно глобально подавить все запросы.
Application.DisplayAlerts = wdAlertsNone

2.2K
30 сентября 2004 года
Dani
51 / / 22.09.2004
Мне не нужно сохранять документ на диске (зачем копить их в папке?), мне не нужно закрывать его. Нужно, чтобы он остался просто выведенным в Ворд. Чтобы пользователь сам решал, что с ним делать. И чтобы кнопки никакие не нажимать после расконнекчивания.
Блин, это вообще можно?.. :(
5.7K
01 октября 2004 года
forw
47 / / 24.08.2004
Цитата:
Originally posted by Dani
Мне не нужно сохранять документ на диске (зачем копить их в папке?), мне не нужно закрывать его. Нужно, чтобы он остался просто выведенным в Ворд. Чтобы пользователь сам решал, что с ним делать. И чтобы кнопки никакие не нажимать после расконнекчивания.
Блин, это вообще можно?.. :(



Дело в том что Excel определяет был ли изменен файл, и соответственно задает вопрос об сохранении на основании свойства
Workbook->Saved, тип TOLEBOOL. Оно доступно также для записи, поэтому если установить это свойство в true, то Excel не запросит сохранение даже если файл был изменен.

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