Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.045 c
5-1149307416
МикроДИП
2006-06-03 08:03
2007.03.04
Компонент TrackBar и событие OnMouseUp...


11-1149836904
YDS
2006-06-09 11:08
2007.03.04
Запуск приложения, хранящегося в ресурсах средствами API


15-1170917756
fisherman
2007-02-08 09:55
2007.03.04
Завод купил напольные весы...


2-1170873071
Yozch1
2007-02-07 21:31
2007.03.04
Некорректная работа wsMaximized


2-1171563825
Первокласник Вася
2007-02-15 21:23
2007.03.04
Список





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский