Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

OLE   Найти похожие ветки 

 
RomaIzDurdoma   (2003-01-28 22:28) [0]

С помощью ОЛЕ создаю отчет в Ворде, распечатываю и закрываю Ворду. Но на медленных машинах Ворда не успевает подготовить к печати документ, и поэтому перед закрытием ругается. Вопрос - как узнать что Ворда отправила весь документ на печать?


 
Palladin   (2003-01-29 02:43) [1]

посмотри в справку по VBA
ИМХО:а вообще мне правильней по моему сохранять файл на диск и через ShellExecute открывать в ворде на предпросмотр этот файл. Пусть пользователь сам решает печатать его или нет.


 
asmith   (2003-01-29 12:45) [2]

Похоже, что с помощью OLE-автоматизации это сделать нельзя. Так у объекта Application начиная с Word2000 появилось только событие DocumentBeforePrint и не больше.


 
Palladin   (2003-01-29 13:04) [3]

кстати решение может быть таким

isPrinting:=true;
while isPrinting do
begin
isPrinting:=false;
try
WApp.Quit;
except
isPrinting:=true;
end;
end;


но если произошла другая ошибка то извиняйте, прога зациклится... нужно организовывать что то типа таймаута...


 
Chubais   (2003-01-29 13:09) [4]


> Palladin © (29.01.03 13:04)

сомнительное какое-то решение...
хотя бы sleep поставил штоль для убедительности...


 
Palladin   (2003-01-29 13:14) [5]

я написал принцип а не версию для реализации...


 
Chubais   (2003-01-29 13:54) [6]


> кстати решение может быть таким


> я написал принцип а не версию для реализации...



 
Palladin   (2003-01-29 14:15) [7]

Eclusive decision for Chubais


bTryMore:=true;
while bTryMore do
begin
bTryMore:=false;
nTimeOutValue:=300;
nTicCounter:=0;
isPrinting:=true;
while (isPrinting) and (bTimeOutValue=nTicCounter) do
begin
isPrinting:=false;
try
WApp.Quit;
except
isPrinting:=true;
end;
Sleep(3000);
nTicCounter:=nTicCounter+1;
end;
if bTimeOutValue=nTicCounter then bTryMore:=Application.MessageBox("Время ожидания вывода на печать закончилось. Отменить печать?",MB_YESNO)=ID_NO;
end;



 
Palladin   (2003-01-29 14:17) [8]

ой...
ошибка...
не (bTimeOutValue=nTicCounter), а
(nTimeOutValue>nTicCounter)


 
Chubais   (2003-01-29 14:39) [9]


> Eclusive decision for Chubais

по всей видимости, имелось в виду Exclusive solution...


 
Palladin   (2003-01-29 14:43) [10]

да именно это и имелось ввиду...
в английском я не силен...


 
RomaIzDurdoma   (2003-01-29 23:08) [11]

А если закрывать Ворду так, чтобы он сам закрывался когда сможет? т.е не закрывать его принудительно, а разрешить закрыться когда он закончит свои фоновые процессы.
Может есть такой способ? Необязательно OLE.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
1-28790
Drohen
2003-02-01 23:38
2003.02.10
Как записать в реестр значение типа DWORD?


1-28723
Ihtiandr
2003-01-31 17:25
2003.02.10
Минимальный размер формы


4-29156
markers
2002-12-23 13:40
2003.02.10
Как сделать свой таск лист как у Explorera?


3-28640
_landy
2003-01-23 09:12
2003.02.10
Query из VirtualTable


14-29063
rover
2003-01-24 18:06
2003.02.10
cxGrid - EQGrid4





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский