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

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

Типа клавиши, блин [D7, Win2k]


Checist [root] ©   (2003-01-26 01:16:00) 

Как мне в событии OnKeyPress сравнить нажатую клавишу с Enter, Shift, Ctrl, Delete, Home, End, Alt и Insert "ом?


Юрий Зотов   (2003-01-26 01:47:00) [1]

Остальное очень сложно. Во-первых, ловим в OnKeyDown, а не в OnKeypress. Во-вторых:

Enter - VK_RETURN
Delete - VK_DELETE
Home - VK_HOME
End - VK_END
Insert - VK_INSERT

Очень сложно, да?
В заключение - см. virual key codes в справке API.


PVOzerski   (2003-01-26 01:40:00) [2]

Я бы подумать немного посоветовал. Знать-то надо лишь то, что OnKeyPress такие клавиши, как Alt и Ctrl, в принципе не ловит, надо использовать OnKeyDown или OnKeyUp. Значения виртуальных кодов клавиш можно поискать по справочникам и хелпам, а можно легко выяснить экспериментально. Часть работы я за Вас сделал, можете продолжить:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
17:
label1.caption:="Ctrl";
18:
label1.caption:="Alt";
else
label1.caption:=inttostr(key);
end;
end;


Anatoly Podgoretsky   (2003-01-26 01:18:00) [3]

С помощью оператора сравнения "="


Наверх

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