- •1. Новые концепции ооп в языке Oblect Pascal
- •2. Объектно-ориентированный подход в программировании
- •Основные понятия
- •3. Понятие класса и объекта
- •4. Поля, методы и свойства объекта
- •5. Ключевое слово Self, примеры использования
- •6. Перегруженные методы
- •7. Создание и удаление объектов
- •8. Инкапсуляция
- •9. Инкапсуляция и модули
- •10. Директивы видимости
- •11. Инкапсуляция при помощи свойств
- •12. Свойства-массивы
- •13. Индексированные свойства
- •14. Свойства и иерархия классов
- •15. Конструкторы, перегрузка конструкторов, 16. Деструкторы
- •17. Ссылочная модель объектов Delphi
- •18. Наследование
- •19. Совместимость типов
- •20. Полиморфизм и позднее связывание
- •21. Виртуальные, динамические методы
- •22. Абстрактные методы
- •23. Бе6зопасное преобразование типов
- •24. Ссылки на класс
- •25. Создание компонентов при помощи ссылок на класс
- •26. Интерфейсы
- •27. Технические приемы, связанные с использованием интерфейсов (делегирование, использование директивы implements)
- •28. Исключительные ситуации
- •29. Порядок выполнения программы и блок finally
- •30. Классы исключений
- •31. Исключения и отладка приложений
- •32. Класс tObject, использование методов класса Tobject
- •33. Понятие события
- •34. Обработчики событий. Делегирование в Delphi
- •35. События стандартных визуальных компонент и их использование
34. Обработчики событий. Делегирование в Delphi
Чтобы осуществить обработку такого события, как, например, щелчок по кнопке, необходимо создать подкласс класса TButoon и добавить в него обработчик события. На практике, создавать новый класс не рационально: это достаточно сложная операция. Обычно в Делфи обработчик события – это метод формы, содержащей этот компонент, а не метод самого компонента. Т.е. обработка событий, имеющих отношение к компоненту выполняется средствами владельца компонента, т.е. формы, на которой он расположен. Такая технология называется делегированием и она является основой компонентной модели. Реализация событий в Делфи основана на специальном элементе языка, называемом указателем на методы. Технически тип указатель на методы – это процедурный тип, обладающий неявным параметром Self. Т.е. в отличие от указателей на функцию, указатель на метод хранит в себе 2 адреса: адрес метода и адрес экземпляра объекта. Когда указатель на метод используется для обращения к методу, адрес экземпляра объекта появляется в коде под именем Self. Объявление такого типа такое же, но в конце добавляется слово of object: type TNotifyEvent = procedure (Sender: TObject) of object.
Пример. TAnimal = class
private
FSay: TNotifyEvent;
public
property OnSay: TNotifyEvent read FSay write FSay;
procedure DoSay(Sender: TObject);
end;
метод диспетчеризации:
procedure TAnimal.DoSay;
begin
if Assigned(FSay) then FSay(Self)
end;
обработчик события:
procedure TForm1.DogSay(Sender: TObject);
begin
vclbl.Caption:='Ррррр';
vclbl.Font.Size:=random(9)+10
end;
Метод диспетчеризации – метод, соответствующий каждому событию, несущий ответственность за исполнение метода обработки.
35. События стандартных визуальных компонент и их использование
Создание собственных событий и их обработка
Компонентно-ориентированное программирование
