Delphi основи роботи з мишкою

тільки корисні матеріали

Головний акціонер Alibaba став найбагатшою людиною в Китаї
статті

Microsoft почала закрите тестування Office 16
статті

Фахівці знайшли діри в безпеці Windows 8.1
статті

У московському метро з'явиться єдина мобільна мережа
статті

eBay буде приймати Bitcoin
статті

Vivitek представила «шкільний» проектор D755WTIR
статті

У Твіттері з'явилася кнопка «Купити»
статті

«Яндекс.Новини» тепер можна переглядати і на iPhone
статті

Delphi основи роботи з мишкою

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

Існують три основних обробника подій: OnMouseDown
OnMouseMove
OnMouseUp

Подія MouseDown - спрацьовує тоді, коли користувач натискає кнопку мишки.
Подія OnMouseUp - спрацьовує тоді, коли користувач відпускає цю кнопку мишки
Подія OnMouseMove - виникає в той момент коли курсор мишки починає переміщатися.

Думаю поки вам все повинно бути зрозуміло!

Давайте зараз відкриємо Delphi і створимо новий проект. Після того як з'явилася нова форма, в Object inspector'е переходимо на закладку Events (події) і знаходимо там обробник подій onMouseDown, клікаєм по ньому два рази. В результаті чого Delphi створить відповідну процедуру:

procedure TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

Як ви напевно вже помітили процедура має кілька параметрів, давайте розглянемо деякі з них більш детально

Button: TMouseButton; - говорить про те що ми можемо визначати яка кнопка мишки (ліва, права) була натиснута.

TMouseButton може приймати значення вже заздалегідь визначених констант.
mbLeft - ліва кнопка миші
mbRight - права кнопка миші
mbMiddle - середня кнопка миші.

Shift: TShiftState; - за допомогою даного параметра ми можемо Об'єднати дію користувача з подією клавіатури, про це мова піде трохи нижче.

Ну і нарешті в змінних X і Y зберігаються координати курсору мишки.

Давайте зараз в уже створеному раніше обработчике подій OnMouseDown пропишемо наступний код:

Запускаємо проект, натискаємо по формі. В результаті під час кожного кліка, на формі малюється квадрат. Відмінно!

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

case Button of
mbLeft:
begin
Canvas.Brush.Color: = clRed;
Canvas.Ellipse (x-20, y-20, x + 20, y + 20);
end;
mbRight:
begin
Canvas.Brush.Color: = clBlue;
Canvas.Rectangle (x-20, y-20, x + 20, y + 20);
end;
end;

Можете запустити проект і перевірити результат.

Так з подією OnMouseUp і OnMouseDown ніби розібралися, переходимо до події OnMouseMove. Як я вже говорив вище подія відбувається коли користувач переміщує курсор миші над тим чи іншим елементом управління.

Давайте зараз створимо обробник подій OnMouseMove і зробимо так що б якщо користувач затиснув клавішу Shift на клавіатурі і при цьому поворушив мишею у нас вималюється кург, а якщо була затиснута клавіша Ctrl і вироблено рух мишки буде малюватися прямокутник.

Повний код процедури має такий вигляд:

procedure TForm1.FormMouseMove (Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if ssShift in Shift then
Canvas.Ellipse (x-20, y-20, x + 20, y + 20)
else if ssCtrl in Shift then
Canvas.Rectangle (x-20, y-20, x + 20, y + 20);
end;

На цьому у мене все зустрічаємося в наступному уроці.!

Схожі матеріали

Схожі статті