- •Объектно-ориентированный анализ
- •Объектно-ориентированное программирование.
- •Объектно-ориентированное проектирование.
- •Основные понятия объектно-ориентированного проектирования.
- •Классы и объекты в Object Pascal.
- •Важнейшие принципы объектно-ориентированного программирования.
- •Составляющие класса.
- •Объекты
- •Создание и уничтожение объектов.
- •Наследование конструкторов и деструкторов.
- •Свойства и инкапсуляция.
- •Статические методы.
- •Полиморфизм. Виртуальные и динамические методы.
- •Абстрактные методы.
- •Перекрытие виртуальных и динамических методов.
- •Как устроен объект изнутри
- •Перезагрузка методов.
- •Задача с использованием полиморфизма
- •Области видимости.
- •Создание класса комплексных чисел.
- •Создание класса векторов
- •Объект-список
- •Модуль по работе со списками
- •Основная программа по работе с объектами-списками
- •Система программирования Delphi
- •Терминология Delphi.
- •Первые шаги визуального программирования в среде Delphi.
- •Иерархия компонентов.
- •Собственники компонентов
- •Элементы управления.
- •Компоненты (tComponent)
- •Оконные не оконные
- •Родительские и дочерние компоненты.
- •Объектно-событийное программирование. События
- •Реакции на события
- •Программирование реакции на событие
- •Особенности реализации событий
- •Делегирование событий
- •Виды событий
- •Диалоги. Работа с файлами. Открытие и закрытие файлов с использованием стандартных диалоговых окон.
- •TOpenDialog и tSaveDialog – диалоги открытия и сохранения файлов (страница dialogs )
- •Компонент класса tform
- •Создание и использование форм
- •Шаблоны форм
- •Программы со многими формами
- •Модульный принцип построения программ.
- •Программные файлы. Основные типы файлов проекта. Простейшее приложение.
- •Структура головного файла проекта.
Объектно-событийное программирование. События
Программистам, работающим в Windows можно не пояснять смысл слова событие. Сама среда Windows и написанные в ней программы управляются событиями, возникающими в результате действия пользователя, а также аппаратуры ПК и других программ. Программирование, ориентированное на события - неотъемлемая черта Windows. Delphi предоставляет полный доступ к подструктуре событий, предоставляемой Windows. С другой стороны, Delphi упрощает программирование обработчиков таких событий.
Событие – это свойство процедурного типа, предназначенное для создания пользовательской реакции на те или иные входные воздействия:
Property OnMyEvent:TMyEvent read FOnMyEvent
write FOnMyEvent;
Здесь OnMyEvent – имя свойства, TMyEvent – процедурный тип; FOnMyEvent – есть поле объекта, содержащее адрес некоторого метода. Присвоить свойству значение – значит указать объекту адрес метода, который будет вызван в момент наступления события.
В Delphi принято называть событиями специальные свойства процедурного типа, которым в качестве значений присваиваются имена методов, где описана реакция на событие. Такие методы называются обработчиками событий.
Все события Delphi принято предварять префиксом On. Например, OnClick – событие при щелчке клавиши мыши, OnKeyPress – при нажатии любой клавиши клавиатуры, OnCreate – при создании компонента, OnMouseMove – при перемещении мыши.
Щелкнув в инспекторе объектов на странице Events в поле нужного события, вы получите в программе заготовку метода нужного типа. При этом имя метода будет состоять из имени текущего компонента и имени события (без префикса on), относиться он будет к текущей форме. Например, пусть на форме Form1 есть кнопка Button1, тогда для обработки щелчка мыши на кнопке (событие OnClick) будет создана заготовка метода:
procedure Form1.Button1Click(Sender:TObject);
begin
. . . . . .{вставить программный код}
end;
Реакции на события
Приложения Delphi являются интерактивными системами, в которых для организации взаимодействия между пользователем и программой используют методы, управляемые событиями. Приложение Delphi реагирует на событие - сигналы от мыши, клавиатуры и системные события (например, в результате нарушения системных ограничений). Различные объекты могут реагировать на различные совокупности событий.
Для организации реакции на события можно:
Проигнорировать событие, т.е. не писать процедуры для реакции на это событие, при этом поведение объекта определяется по умолчанию;
Перехватить событие, для этого надо написать текст процедуры – обработчика события, при этом можно модифицировать или изменить поведение объекта, задаваемое по умолчанию. Это может быть, например, изменение вида курсора при попадании в определенную область на экране или изменение доступности компонента с помощью свойства Enabled.
Например, последовательность действий при перехватывании события OnClick - щелчка мыши для управляющей кнопки Button1, состоит в следующем:
Возникает событие нажатия на кнопку с именем Button1, для этого пользователь установит курсор на кнопку и нажмет левую клавишу мыши (т.е. осуществит щелчок мыши по кнопке Button1), возникнет событие по имени OnClick - щелчок на кнопке;
Объект Button1 перехватывает это событие, так как для него имеется обработчик события;
Delphi ищет процедуру с именем, соответствующим имени задействованного объекта (Button1) и имени события (OnClick), т.е. процедуру Button1Click.
Имя процедуры обработчика события состоит из Buttonl1 – имени объекта, на котором произошло событие, и Click – имени события (без префикса On).
Разработчик приложения с помощью Delphi должен писать только обработчики событий. Перехват событий и организацию вызова обработчиков событий реализует программа Delphi.