русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ВОПРОС №15


Дата добавления: 2015-07-09; просмотров: 407; Нарушение авторских прав


СОБЫТИЯ

Информация о наступлении события это сообщение Windows, полученная так называемая функция окна. Таких сообщений сотни и все они имеют простую интерпретацию, не требующих особых знаний среды. Событие это св-во процедурного типа, предназначенное для создания пользовательской реакции на то или иное входное воздействие.

Property OnMyEvent: TMyEvent read FOnMyEvent write FOnMyEvent;

Здесь FOnMyEvent это поле процедурного типа, содержащее адрес некоторого метода. Присвоить такому св-ву значение, значит указать объекту адрес метода, который будет вызываться в момент наступления события. Такие методы называются обработчиками событий.

Например запись : Application.onActivate:=MyActivatingMethod;

Означает, что при активизации объекта Application будет вызван методо-обработчик MyActivatingMethod.

События имеют разное количество и тип параметров, в зависимости от происхождения и предназначения. Общим для всех является параметр Sender. Он указывает на объект, источник события. Самый простой тип это TNotifyEvent, он не имеет других параметров и таким образом является переменной процедурного типа.

TNotifyEvent= procedure (sender: TObject) of object;

Тип метода, предназначенный для извещения о нажатии клавиши, предусматривает передачу программисту кода этой клавиши, передвижение мыши и ее текущие координаты. Все события в Delphi принято предварять префиксом ON (On Create)

Дважды щелкнув в инспекторе объектов на странице Event в поле любого события, вы получите в программе заготовку метода нужного типа, при этом его имя будет состоять из имени текущего компонента и имени события, и относиться он будет к текущей форме.

Поскольку событие это св-во объекта, их значение можно изменять в любой момент времени выполнения программы, эта возможность называется делегированием. Можно в любой момент взять способы реакции на события у одного объекта и присвоить (делегировать) другому: Object1.OnMouseMove:= Object2.OnMouseMove;



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

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

Если никакой персонификации объекта вызывающего метод не нужно, то проблем не возникает. Если же все объекты, разделяющие между собой один обработчик события, требуют персонификации, то приходится прибегать к дополнительным ухищрениям. Типовой прием использует св-во Tag, который имеется у всех компонентов (const Colors: array [0..7] of TColor= (ClWhil, clRed, ClGreen)).

 




<== предыдущая лекция | следующая лекция ==>
ВОПРОС №14 | ВОПРОС №16


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.