Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsiy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.14 Mб
Скачать

Лекція №5.

Тема 5. Подійно-орієнтована взаємодія між компонентами при створенні програми.

План.

  1. Взаємодія між компонентами та діями користувача при створенні програми та подальшого її використання. Події. Реагування на події у C++ Builder.

  2. Характеристика основних подій що виникають з об’єктами: OnActivate, OnClose, OnCreate, OnDestroy, OnHide, OnPaint, OnResize, OnShow, OnClick, OnDblClick, OnMouseDown, OnKeyDown, OnEnter та інші.

1. Взаємодія між компонентами та діями користувача при створенні програми та подальшого її використання.

Windows є середовищем, що керується подіями (event-driver). Це означає, що програма керується подіями, що відбуваються в середовищі Windows. До подій відносяться переміщення вікна, кліки кнопками миші, натиснення клавіш клавіатури, тощо.

Події у VCL – це все, що відбувається в компоненті. Кожен компонент спроектований так, щоб реагувати на певні події. Зазвичай маються на увазі події Windows, але це не обов’язково. Наприклад, компонент Button (кнопка) буде реагувати на клік мишкою. Список подій, на які реагує компонент, наведений на укладці Events вікна інспектора об’єктів. Ім’я події одночасно слугує її описом. Наприклад, натиснення кнопки миші називається OnMouseDown, відпускання кнопки миші OnMouseUp.

2. Характеристика основних подій що виникають з об’єктами: OnActivate, OnClose, OnCreate, OnDestroy, OnHide, OnPaint, OnResize, OnShow, OnClick, OnDblClick, OnMouseDown, OnKeyDown, OnEnter та інші.

Реакція на подію реалізується як функція обробки події. Все, що вам потрібно зробити, це вибрати необхідну подію. Далі С++Builder сам відобразить функцію, готову до введення коду. Функції обробки події надається ім’я, що складається з двох частин. Перша частина ідентифікує форму, що містить компонент, для якого створена функція обробки події. Друга частина імені ідентифікує сам компонент та подію. Наприклад:

void __fastcall TForm1::Button1Click(TОbject *Sender)

void __fastcall TMainForm::FormCreate(TObject *Sender)

Ці функції виглядають подібно до функцій-членів класу, які ми обговорювали, і фактично ними являються.

Єдина відмінність полягає у тому, що функції С++Builder використовують ключове слово __fastcall (перед __fastcall стоять два знаки підкреслення!).

Не так важливо розуміти, що означає __fastcall, головне – знати, що всі функції С++Builder використовують цю угоду про виклик.

Крім того, ви помітили, що функції в якості аргументу приймають покажчик з ім’ям Sender на об’єкт TОbject. Кожна функція обробки події завжди буде мати хоча б один аргументSender. В залежності від події, функція може також приймати один або декілька додаткових аргументів. Що ж таке Sender? Це покажчик на компонент, який надсилає повідомлення про подію обробнику. Іноді аргумент Sender є зайвим (коли відомо, від якого компонента надходить повідомлення). Взагалі, Sender дозволяє мати один обробник подій для кількох компонентів.

Параметр Sender у заголовках процедурних типів визначає той об’єкт чи елемент програми, який є джерелом події, тобто місце, де подія виникла. Якщо потрібно, параметр Sender можна використати для уточненя об’єкта – джерело події, або параметрів і поточного стану об’єкта.

sOnActivate – подія виникає для форми програми кожного разу в момент, коли форма стає активною й отримує фокус уведення.

TNotifyEvent = procedure ( Sender: TObject ) of object;

property OnActivage: TNotifeEvent;

sOnCreate– подія виникає тоді, коли форму створюють уперше на початку виконання програми. Використовують для виконання підготовчих операцій: перевірки наявності файлів, створення в пам’яті робочих структур даних тощо. Якщо властивість видимості форми є ввімкненою (property Visible ® true), то події виникають у такому порядку: OnCreate ® OnShow ® OnAktivage ®OnPaint.

property OnCreate: TNotifyEvent;

sOnClick – подія виникає для будь-якого видимого елемента на формі (кнопки, панелі, списки, таблиці тощо) в момент, коли вказівник мишки є над елементом і ми клацаємо ЛКМ. Однак треба пам’ятати, що ця подія може виникти і за інших умов, наприклад, під час натискання на клавішуEnter, клавішу пропуску, відокремлення якогось елемента списку чи таблиці клавішами зі стрілками 

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