Visual Basic 6. Руководство разработчика


Печать и сохранение документов - часть 2


AppWord.ActiveDocument.SaveAs "с:\Documents\Report99.doc"

К свойствам объекта Document также относится свойство Saved,

которое воз­вращает значение True

или False,

указывающее, был ли документ изменен с момента последнего сохранения. Это свойство можно использовать в программе, чтобы определить, следует ли обращаться к методу Save (Сохранить) перед завер­шением работы приложения.

Ниже приведен фрагмент программы, позволяющей открыть существующий документ, распечатать его, а затем закрыть приложение. Следует отметить то обстоятельство, что с целью упрощения программы для создания нового экземпляра Word используется функция Create0bject(). Способ установления связи с сущест­вующим экземпляром Word рассматривался ранее.

Программа 14.9. Открытие и печать DOC-файла

Dim WordApp As Word.Application

Dim thisDoc As Document

Dim prnTime As Date

Dim breakLoop As Boolean

Set WordApp = CreateOb]act ("Word Application")

WordApp.Visible - False

WordApp.Documents.Open ("c:\sarriple.doc")

thisDoc.Printout True, True

prnTime = Time

breakLoop = False

While WordApp.BackgroundPrintingStatus <> 0 And Not breakLoop

If Minute(Time - prnTime) > 1 Then

Reply = MsgBox("Word is taking too long to print." _

& vbCrLf & "Do you want to quit7", vbYesNo)

'(Word слишком долго выполняет

'печать ... Остановить печать?)

If Reply = vbYes Then

breakLoop = True

Else

prnTime = Time

End If

End If

Wend

WordApp.Quit

MsgBox "Document saved and printed!"

' (Документ сохранен и напечатан')

До тех пор пока Word выполняет запись документа в буфер, значение свойства Background PrintingStatus не равно 0, а пока выполняется цикл, работа приложения не будет завершена.

Из-за аппаратных ошибок этот процесс может никогда не закончиться, и, сле­довательно, приложение будет заблокировано. Каждую минуту, программа спра­шивает пользователя, будет ли он ждать или нет. Если пользователь принимает решение завершить распечатку, переменная breakLoop принимает значение True, что приводит к прерыванию цикла While...Wend. Это достаточно простой подход, хотя он требует больших затрат времени работы процессора. Гораздо более эффек­тивным представляется использование в форме элемента управления Timer, позво­ляющего программно контролировать процесс печати документа.




Начало  Назад  Вперед