.piero |
Отправлено: 02.05.2004, 21:46 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 62
|
В консольках вместо названия кнопки писался её ASCII код, а в VCL эти коды оказываются совсем другими кнопками, как быть
Типа этого
CODE |
Switch(..){
case 'w':
case 'e':
...
}
|
я уже пробовал, не получилось.
|
|
exp |
Отправлено: 02.05.2004, 22:08 |
|
Мастер участка
Группа: Участник
Сообщений: 304
|
ну так узнай их
CODE |
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
Label1->Caption = IntToStr(Key);
}
|
На форме 1 лабел. Жмешь кнопки — записываешь код.
|
|
olegenty |
Отправлено: 03.05.2004, 06:51 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
не получилось, потому что возвращается "W" и "E", а не "w" и "e" — в доках написано, что коды возвращаются для ВЕРХНЕГО РЕГИСТРА.
смею, одноко, заметить, что всё зависит от обрабатываемого события. есть событие OnKeyDown, суть — обработчик WM_KEYDOWN, а есть OnKeyPress, суть — обработчик WM_CHAR. так вот, тебе нужен последний. потому что следующий код — рабочий:
CODE |
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
switch (Key)
{
case 'w': ShowMessage(Key);
break;
case 'W': ShowMessage(Key);
}
}
|
всё-таки доки читать невредно...
|
|
exp |
Отправлено: 03.05.2004, 23:20 |
|
Мастер участка
Группа: Участник
Сообщений: 304
|
но проверять тоже не помешает. Не знаю, что у тебя не получилось?
CODE |
Label1->Caption = IntToStr(Key) + " "+Key;
|
Вот соответствие кода символу.
|
|