Форум: "Начинающим";
Текущий архив: 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