Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры ПОП.doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
284.67 Кб
Скачать

12.Технологии управления приложением и разработка пользовательских событий.

  Наряду со свойствами и методами с классом связывается еще одно понятие – события. Каждый класс имеет определенный набор событий, которые могут возникать при работе с объектами класса, чаще всего при определенных действиях пользователя, иногда, как результат действия системы. При возникновении события, связанного с тем или иным объектом, система посылает сообщение объекту, которое может быть обработано методом – обработчиком события, специально созданным при конструировании объекта. События обеспечивают большую гибкость при работе с объектами. Методы класса выполняются одинаково для всех объектов класса, а на события каждый объект реагирует индивидуально, поскольку имеет собственный обработчик события.

13.Технология построения обработчиков событий пользовательских классов. Объявление WithEvents.

  Возможность создавать события собственных классов - это новинка Office 2000. Ранее было возможным для классов иметь только два стандартных события – Initialize и Terminate, играющих роль конструктора и деструктора по умолчанию. Теперь можно в классе создать набор событий и для каждого из экземпляров класса написать обработчики любого из этих событий. Тем самым расширяются возможности созданных программистом объектов.   

  Прежде всего, нужно создать сам класс объектов, в котором предусмотрен набор событий, возможных для объектов класса. В методах класса следует предусмотреть возможность возбуждения событий. На следующем этапе следует создать класс, в котором объявлены объекты WithEvents. В этом классе создаются обработчики событий для каждого экземпляра класса. Кроме этих объектов – двойников создаются и «реальные» объекты, как правило, в стандартном модуле. После того, как происходит связывание двойников, объекты могут реагировать на события. Всякий раз, когда объект вызывает метод класса, в котором возбуждается событие, это приводит к тому, что вызывается обработчик события. Можно передавать и получать информацию от обработчика событий.   

  Одно из возможных применений этой технологии работы состоит в том, что классы с событиями могут выступать как упаковка для элементов управления. Цель такого класса состоит в расширении свойств элемента управления и, в частности, в добавлении новых событий, на которые мог бы реагировать этот элемент управления (в таких случаях используется модуль формы для объявления объектов WithEvents и создания обработчиков событий этих объектов).

14. Использование объекта Err и обработка ошибок.

  Свойства объекта Err устанавливаются генератором ошибки — средой Visual Basic, объектом или программистом.   

  При возникновении ошибки во время выполнения свойства объекта Err заполняются данными, однозначно определяющими ошибку, а также сведениями, которые можно использовать для ее обработки или ее изучения. Для создания ошибки во время выполнения в коде используйте метод Raise.   

  Свойства объекта Err сбрасываются в нуль или строки нулевой длины ("") после инструкции Exit Sub, Exit Function, Exit Property илиResume Next внутри подпрограммы обработки ошибок. При использовании любой формы оператора Resume за пределами подпрограммы обработки ошибки свойства объекта Err не сбрасываются. Метод Clear может использоваться для явного сброса Err.   

  Используйте метод Raise вместо оператора Error для создания ошибок во время выполнения для системных ошибок и модулей класса. Решение о том, следует ли использовать метод Raise в другом коде зависит от полноты данных, которые требуется возвращать.   

  Объект Err является внутренним объектом с глобальной областью действия. Следовательно, создание в коде экземпляра этого объекта не требуется.   

  Общий принцип обработки ошибки выглядит так:

1. Перед опасным  кодом помещается команда:   

On Error GoTo метка_обработчика_ошибки

2. Далее в коде  программы помещается метка обработчика  ошибки и про граммный код  обработки:   

ErrorHandlerDivision:   

     MsgBox "Ошибка при делении"

3. Поскольку в  такой ситуации код обработчика  ошибки будет выполняться даже  в том случае, если ошибки не  было, есть смысл поставить перед  меткой     обработчика команду Exit Sub (Exit Function).

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