Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с клавиатурой. [D7, XP]


Страницы:   1 2

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)


> Что можно сделать?


Не нажимать на другие кнопки?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо