Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

клавиатура   Найти похожие ветки 

 
Adios ©   (2007-02-12 18:24) [0]

как получить при нажатии число:
стрелка вверх-200
стрелка вниз-208
стрелка влево-203
стрелка вправо-205
W-17
S-31
A-30
D-32


 
koha ©   (2007-02-12 18:32) [1]

- где получить, в своей форме или за прделами формы?


 
Adios ©   (2007-02-12 19:01) [2]

в своей


 
Efir ©   (2007-02-12 19:39) [3]

Можно примерно так:

if GetAsyncKeyState(VK_UP)<>0 then ...
if GetAsyncKeyState(VK_DOWN)<>0 then ...
if GetAsyncKeyState(VK_LEFT)<>0 then ...
if GetAsyncKeyState(VK_RIGHT)<>0 then ...

и т.д.


 
RASkov   (2007-02-12 19:39) [4]

Или так:
KeyPreview = True;
На OnFormKeyUp формы
 case Key of
  VK_DOWN: ShowMessage("Down Chislo:=208");
  VK_UP: ShowMessage("UP Chislo:=200");
  VK_LEFT: ShowMessage("Left Chislo:=203");
  VK_RIGHT: ShowMessage("Right Chislo:=205");
  ORD("W"): ShowMessage("W Chislo:=17");
  ORD("A"): ShowMessage("A Chislo:=30");
  ORD("S"): ShowMessage("S Chislo:=31");
  ORD("D"): ShowMessage("D Chislo:=32");
 end;


 
koha ©   (2007-02-12 19:41) [5]

procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.KeyPreview:=true;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage(IntToStr(Ord(Key)));
end;


а так то необходимо знать текущую  кодировку и разницу между кодами = "константа" , например,
Ord(Key)+константа = нужная кодировка.


 
Adios ©   (2007-02-12 20:41) [6]

koha приведи пожалуйста пример констант.


 
Adios ©   (2007-02-12 20:47) [7]

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


 
RASkov   (2007-02-12 21:52) [8]

> приведи пожалуйста пример констант.


Если чесно, я что-то не въехал, какая там у тебя кодировка, но вот можешь свою построить:
const
   MyCode: Array[0..255] of Byte=
   (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 203, 200, 205, 208, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 30, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 31, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.KeyPreview:=True;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var Chislo: Integer;
begin
case Key of
 VK_DOWN: Chislo:=208;  //как вариант
 VK_UP: Chislo:=200;    //с числом
 VK_LEFT: Chislo:=203;  //оставил
 VK_RIGHT: Chislo:=205; //тоже
 ORD("W"): Chislo:=17;
 ORD("A"): Chislo:=30;
 ORD("S"): Chislo:=31;  //можно дальше
 ORD("D"): Chislo:=32;  //продолжить список
 .....................................
end;
Caption:=Format("Код: %d,  Мой код: %d, Chislo: %d", [Key, MyCode[Key], Chislo]);
end;


 
Adios ©   (2007-02-12 22:06) [9]

короче объясняю зачем и где я это увидел:
эмулятор sega "Fusion"
эмулятор PS "eSPXe"
в них нужно програмно осуществить настройку клавишь, эмуляторы от разных производителей, но после того как в них определяешь клавиши они одинаковые, в смысле и там и там
стрелка вверх-200
стрелка вниз-208
стрелка влево-203
стрелка вправо-205
W-17
S-31
A-30
D-32
а значит используется какаято одинаковая кодировка, возможно какойто определённый стандарт, мнебы как нибудь его надо узнать


 
Adios ©   (2007-02-13 23:43) [10]

?


 
brother ©   (2007-02-15 07:16) [11]

Удалено модератором
Примечание: МАТ



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1171303026
amphest_coder
2007-02-12 20:57
2007.03.04
Полный выход из углубления через Inherited


6-1159195346
PanModem
2006-09-25 18:42
2007.03.04
Как соединить два компа при помощи модемов?


2-1171538984
_Inkognito_
2007-02-15 14:29
2007.03.04
БД И ДЕЛФИ


15-1171200716
web20
2007-02-11 16:31
2007.03.04
PHPNuke or Joomla


1-1168682116
Skopaas
2007-01-13 12:55
2007.03.04
Выходной параметр процедуры