Delphi основы работы с мышкой

Опубиковано: 24.11.2011 г., автор: , просмотров: 61247

    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 человек ! Подписаться



    Похожие материалы

    Последние из рубрики

    гость 10 Jun 2022 в 15:24 #
    Зачётно даже сейчас !!!
    lolich 29 Oct 2018 в 16:16 #
    норм спасиб
    Морковковедение 10 Jan 2017 в 16:02 #
    Развожу морковь в домашних условиях. хотел бы побольше узнать об этом бизнесе если кто то разводит морковки дома. помогите, какая должна быть температура при выращивание?
    Катерина 19 Nov 2013 в 18:04 #
    спасибо большое за урок!!!
    lol 20 Jun 2013 в 00:00 #
    А как сымитировать имитацию имитационной кнопки имитационного телефона через имитацию имитационого имитатора(Troll Face)0_0;

    ОтменитьДобавить комментарий