11

 

 

 

Статьи

Понидилок Андрей

УЧИМ DXINPUT

ВВЕДЕНИЕ

 Я надеюсь ты уже изучил статью "Учим DelphiX", т.к. это её продолжение, относящееся к компоненту DXInput, ктоторый работает с устройствами ввода (клавиатура, мышь и т.д.) 

 Вот как найти его на панели DelphiX:

Выбирай и ставь его на форму, созданную нами в прошлом уроке. Поехали!

УРОК 2

  Чтобы понять принцип работы DXInput и не впадать в его глубь, то что я расскажу - хватит, мы будем изучать только клавиатуру.

  Для начала создадим две переменные X и Y типа integer. Находим раздел описания переменных var и вписываем туда:

var
Form1: TForm1;
X,
Y:Integer;

 Хорошо. Теперь, двойным счелчком мыши по иконке DXInput на форме, перед вами появится окошко настроек:

Тут настраевается джойстик, но он нам не нужен. Нажимаем на закладку Keyboard.

 

Перед вами появилось окошко задания значений клавишам, т.е. мы задаем нужные нам клавиши. По-умолчанию стоят кнопки Up, Down, Left, Right, Button1, Button2. Вы имеете возможность изменить их значения на удобные вам, но лучше оставить все как есть. Нам этого вполне достаточно.

  Сделаем так, чтобы наша надпись Hello World смогла передвигаться при помощи клавиш управления курсором (стрелки).

  Выбираем в Object Inspector'енашу форму -    Form1. Ищим событие (event) OnCreate. Дважды щелкаем по пустому полю возле него. В открывшемся окне пишем:

X:=100;
Y:=100;

 Мы задали надписи начальные координаты. Теперь мы будем их изменять. Выбираем событие DXTimer'а OnTimer. До DXDraw.Flip; пишем:

DXInput1.Update; // обновим значения DXInput'а

If isUp in DXInput1.States then Y:=Y-1;   // поднимем

If isDown in DXInput1.States then Y:=Y+1; // опустим

If isLeft in DXInput1.States then X:=X-1; //сдвинем влево

If isRight in DXInput1.States then X:=X+1; // сдвинем вправо
 

  Но надпись двигаться не будет, т.к. у неё координаты 30 и 30. Заменим их на X и Y:

Textout(X, Y, 'Hello World');

Теперь запусти и возрадуйся - надпись движется в любые стороны. Даже по диагонали. Можно это было реализовать с помощью стандартных функций Delphi? Нет!!! :-)

-









 
 

Copyright © Pascal 2000 - 2002
Дизайн: Понидилок Андрей

Hosted by uCoz