На этом шаге мы рассмотрим общие принципы обработки ошибок, возникающие при использовании объекта Application.
Вызов методов объекта Application и его дочерних объектов может приводить к ошибкам в процессе работы программы. Эти ошибки нужно обрабатывать, иначе они приведут к "зависанию" приложения или всей системы.
К тому же обработка ошибок - средство получения информации для анализа функционирования приложения. Как обычно, для обработки исключительной ситуации используем синтаксис try ... except ... end. Таким образом, каждое обращение к методам и объектам Application придется обрамлять синтаксисом обработки ошибок. Это, в конечном итоге, приведет к увеличению исходного текста программы и сопутствующим проблемам. Решением этих проблем может быть создание и использование пользовательской библиотеки процедур и функций с обработкой ошибок выполнения. Для начала можно создать библиотеку в виде модуля unit, а затем - в виде динамической библиотеки. Рассмотрим синтаксис библиотеки и процедур и функций для работы с Word.Application.
unit MyWord; interface // Заголовки процедур и функций Function CreateWord:boolean; Function VisibleWord(visible:boolean):boolean; implementation // Используемые библиотеки uses ComObj; // W - переменная, которая является ссылкой на объект Application var W:variant; // Функция CreateWord создает объект Word.Application и помещает ссылку //на него в переменную W:variant. Если объект создан без ошибок, то // исключительная ситуация не возникает и функция возвращает True. Если // возникает ошибка, например если приложение Word не установлено // в системе, то вызывается исключительная ситуация и функция возвращает // значение False. Function CreateWord:boolean; begin CreateWord:=true; try W:=CreateOleObject('Word.Application1); except CreateWord:=false; end; End; // Функция VisibleWord показывает/скрывает окно приложения Word. // Она основана на свойстве Visible объекта Application. // В результате ошибки возникает исключительная ситуация //и функция возвращает значение False. Function VisibleWord (visible: boolean):boolean; begin VisibleWord:=true; try W.visible:= visible; except VisibleWord:=false; end; End; end.
Со следующего шага мы начнем рассматривать создание простого документа.