![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с клавиатурой. [D7, XP]
hprx © (2007-08-24 15:32:00)Добрый день! Вот пытался сделать постейший клавиатурный тренажер. Посередине формы разместил label, а label.caption написал буквы, с которыми должен работать. Дальше вот:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
if key=70 then Label1.Left:=Label1.Left-32;
Ну проблема в том, что если сейчас нужно нажать буква А(F), то все хорошо, но вот следующая буква допустим О(J), а в коде Key=70.
Что можно сделать?
max_ (2007-08-24 16:38:00) [21]ок...проехали с мемо, у тебя есть буквы, которые надо нажать на клаве, они записаны в
label, делаешь тогда так - в обрFormKeyDown()пишешь:
if Key = ord(label.caption[1]) then label.caption:=copy(label.caption, 2, length(label.caption)) else message('не та кнопка');
hprx (2007-08-24 16:33:00) [22]Извини max_, я вот попробовал то, что ты написал, что-то не получается. Объясни, пожалуйста, для чего используешь Memo1 и что должно быть + ' ?' +
max_ (2007-08-24 16:08:00) [23]блин, ...memo1.line.add(chr(i) + ' ' + inttostr(i));
max_ (2007-08-24 16:07:00) [24]
> Что в коде означает " = " ?
напиши так -memo1.line.add(chr(i) + ' ' inttostr(i));
hprx (2007-08-24 15:55:00) [25]
> max_ (24.08.07 15:38) [3]
> вот так можно узнать коды клавишь - for i:=0 to 255 do memo1.
> line.add(chr(i) + " = "inttostr(i));, а после в обр. FormKeyDown()
> написать if Key = ThisKey (новая глоб. перем., типа char)
> then ThisKey:=random(256);
Что в коде означает " = " ?
iXT (2007-08-24 15:48:00) [26]> [2] Сергей М. © (24.08.07 15:37)
> Откуда взялось это самое "70" ?
Ну как откуда - это код единственной "рабочей кнопки" на клавиатуре или требование заказчика
max_ (2007-08-24 15:41:00) [27]блин, ...
if Key=ord(ThisKey) then ThisKey:=chr(random(256)), илиThisKeyсделать типаWord, и тогда можно оставить так, как написано выше.
max_ (2007-08-24 15:38:00) [28]вот так можно узнать коды клавишь -
for i:=0 to 255 do memo1.line.add(chr(i) + " = " inttostr(i));, а после в обр.FormKeyDown()написатьif Key = ThisKey(новая глоб. перем., типа char)then ThisKey:=random(256);
Сергей М. (2007-08-24 15:37:00) [29]Откуда взялось это самое "70" ?
engine (2007-08-24 15:36:00) [30]
> [0] hprx (24.08.07 15:32)
> Что можно сделать?
Не нажимать на другие кнопки?