Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л14.doc
Скачиваний:
9
Добавлен:
30.10.2018
Размер:
202.24 Кб
Скачать

Лекція №14

Тема 4. Розробка графічного інтерфейсу користувача (продовження) Обробка подій миші і клавіатури План

1. Події миші.

2. Розпізнавання джерела події, натиснутих кнопок і клавіш, координат курсору.

3. Події клавіатури.

4. Перетягування даних між об’єктами.

5. Перетягування і вбудовування об'єктів — Drag&Doc. Плаваючі вікна.

6. Буксування компонентів у вікні програми.

  1. Події миші

Всі дії користувача при взаємодії із програмою зводяться до переміщення, натисненню кнопок миші і натисненню клавіш клавіатури. Розглянемо обробку в застосуванні подій, пов'язаних з цими маніпуляціями користувача.

У компонентах C++Builder визначений ряд подій, пов'язаних з мишею. Це події:

OnСlick - клацання мишею на компоненті і деякі інші дії користувача.

OnDblClick - подвійне клацання миші на компоненті.

OnMouseDown - натиснення клавіші миші над компонентом. Можливо розпізнавання натиснутої кнопки і координат курсору миші.

OnMouseMove - переміщення курсору миші над компонентом. Можливо розпізнавання натиснутої кнопки і координат курсору миші.

OnMouseUp - відпускання раніше натиснутої кнопки миші над компонентом. Можливо розпізнавання натиснутої кнопки і координат курсору миші.

OnStartDrag - початок, процесу «перетягування» об'єкту. Можливо розпізнавання перетягнутого об'єкту.

OnDragOver - переміщення «перетягнутого» об'єкту над компонентом. Можливо розпізнавання перетягнутого 6об'єкту і координат курсору миші.

OnDragDrop - відпускання раніше натиснутої кнопки миші після «перетягування» об'єкту. Можливо розпізнавання перетягнутого об'єкту і координат курсору миші.

OnEndDrag - ще одна подія при відпусканні раніше натиснутої кнопки миші після «перетягування» об'єкту. Можливо розпізнавання перетягнутого об'єкту і координат курсору миші.

OnEnter – подія, що виникає у момент отримання елементом фокусу в результаті маніпуляції мишею, натиснення клавіші табуляції або програмної передачі фокусу.

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

OnMouseWheel - подія при обертанні коліщатка миші в будь-яку сторону. Починаючи з C++Builder 5.

OnMouseWheelUp - обертання коліщатка миші вгору. Наступає, якщо обертання не оброблене по подією OnMouseWheel.

OnMouseWheelDown - обертання коліщатка миші вниз. Наступає, якщо обертання не оброблене подією OnMouseWheel.

Як видно з приведеної таблиці, ці події охоплюють всі можливі маніпуляції з мишею і навіть дублюють багато з них. Найширше використовується подія OnClick. Звичайно вона наступає, якщо користувач клацнув на компоненті, тобто натиснув і відпустив кнопку миші, коли покажчик миші знаходився на компоненті. Але ця подія відбувається також і при деяких інших діях користувача. Вона наступає, якщо:

  • Користувач вибрав елемент в таблиці, дереві, списку, випадному списку, натиснувши клавішу із стрілкою.

  • Користувач натиснув клавішу пропуску, коли кнопка або індикатор були у фокусі.

  • Користувач натиснув клавішу Enter, а активна форма має кнопку за умовчанням, вказану властивістю Default.

  • Користувач натиснув клавішу Esc, а активна форма має кнопку переривання, вказану властивістю Cancel.

  • Викликаний метод Click елементу меню..

Для форми подія OnClick наступає, якщо користувач клацнув на порожньому місці форми або на недоступному компоненті.

Подія OnMouseMove відбуваються постійно в процесі переміщення курсору миші і навіть просто при його тремтінні, неминучому, якщо користувач не знімає руки з миші. Це треба враховувати і користуватися цією подією дуже обережно, оскільки вона, на відміну від інших, відбувається багато разів. Кожна дія користувача, пов'язане з натисненням або відпусканням кнопки миші приводить до серії послідовно наступаючих подій. У обробниках подій OnMouseDown і OnMouseUp можна розпізнати, яка кнопка миші натиснута, і в якій точці компоненту знаходиться в даний момент курсор миші.

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