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 пропишем следующий код:
Canvas.Ellipse(x-20,y-20,x+20,y+20) ;
Запускаем проект, кликаем по форме. В итоге при каждом клике, на форме рисуется квадрат. Отлично !
Двигаемся дальше, сейчас немного усложним код и сделаем так что бы при клике левой кнопкой мышки у нас рисовался красный круг, а при клике правой синий квадрат.
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;
На этом у меня все встречаемся в следующем уроке.!
P.S. Хотите вперед всех остальных посетителей сайта получать свежие Видео уроки, Аудио подкасты, статьи по Delphi.Участвовать в конкурсах и постепенно вливаться в нашу команду ?!
Тогда прямо сейчас подписывайтесь на бесплатную мультимедийную рассылку сайта delphiexpert.ru
Нас уже больше чем 10000 человек ! Подписаться
Похожие материалы
- Delphi исходники - Cверхточная позиция курсора
- EnableHardwareInput winapi
- Delphi исходники - игра Морской бой
- Погружение в Indy, редкая книга delphi
- htmlhelp - Дополнение
Последние из рубрики
- Delphi работа с API Вконтакте (vkontakte) часть 2
- Delphi видео урок - исходный код в проводнике Windows
- Delphi урок - учимся парсить ссылки на странице