Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 (1).doc
Скачиваний:
15
Добавлен:
08.09.2019
Размер:
591.36 Кб
Скачать

Желательно изложить

Поскольку реакция программы на события, как правило, связана с конкретными визуальными компонентами — щелчок по кнопке, изменение размеров окна и т.п., обработчики также принято считать методами конкретных объектов. В качестве наиболее распространенного примера рассмотрим заголовок обработчика события OnClick (реакция на щелчок мыши) в системе Delphi для компонента типа Buttonl, имеющий вид procedure TForml.ButtonlClick(Sender: TObject);

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

Заметим, что типичным аргументом является объект Sender, через который система Delphi передает имя кон­кретного объекта, вызывающего обработчик. Последнее обстоятельство представляет большой практический интерес, так: как; позволяет делать общий обработчик; на группу компонентов. Скажем, для калькулятора вместо 10 однотипных обработчиков кнопок можно написать всего один:

п := 10 * n + (Sender as TButton).tag;

В приведенной формуле предполагается, что переменная п, накапливающая результат набора числа, имеет целочисленный тип, а значения свойства tag у всех кнопок предварительно установлены в соответствии с надписью на кнопке (на кнопке "1" задана 1, на кнопке "2" — 2 и т.д.). Тогда становится понятным, что, используя Sender в качестве конкретной кнопки, мы получаем доступ к ее свойству tag и по стандартной формуле добавляем его к текущему значению числа в качестве последней десятичной цифры.

Описывая функционирование обработчиков событий, целесообразно несколько подробнее рассказать о меха­низме реализации событий в современном программном обеспечении, Материал этот следует считать до­полнительным, но, по мнению авторов, он достаточно нагляден и полезен для понимания сути фундаментальных процессов событийного программирования. Хочется даже провести некоторую аналогию: в физике тоже можно применять некоторые законы электричества, не зная того, что ток есть направленное движение электронов; тем не менее, это, к счастью, (пока!) не является основанием для исключения данного фундаментального материала из школьного курса.

Основой обработки событий в современных программных системах служит посылка и прием сообщений. В простейшем случае сообщение представляет собой несколько помещаемых в строго определенное место памяти целых чисел. Первое является идентификатором сообщения: проще говоря, оно позволяет однозначно определить назначение сообщения. Остальные числа являются параметрами, раскрывающими суть события. Скажем, для случая сообщений мыши это координаты положения ее указате­ля на экране. Для других сообщений содержание инфор­мации, разумеется, будет отличаться, но можно утверждать, что каждому типу сообщений соответствует строго определенная "уточняющая" информация.

Те, кого заинтересовала эта часть вопроса, и кто намерен рассказать о ней на экзамене, могут обратиться к полному тексту билета (см. ссылку в конце вопроса).

Примечание. Советую также в случае более глубокого интереса к вопросу о сообщениях Windows внимательно последить за последующими номерами газеты. Там будет опубликована статья Е.А. Еремина "Что такое скан-код клавиши и как его увидеть", в конце которой описывается довольно простая программа непосредственной обработки сообщений от клави-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]