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

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

Коды стрелок?


alext ©   (2002-06-20 15:48:00) 

Не могу найти код стрелки вниз.
Например Enter-#13, а стрелочки? Может, кто подскажет?


Юрий Зотов   (2002-06-22 13:26:00) [1]

Народ, аккуратней с советами!!! Символы 37..40 - это вовсе не стрелки, а обычные нормальные ASCII-символы, посмотрите по таблице.

Стрелки же относятся к так называемым РАСШИРЕННЫМ клавишам, нажатие на которые генерит не 1 байт (символ), а последовательность из 2-х байтов. Во втором байте там действительно сидит, например, #37, но смысл его совершенно другой.

Эта двухбайтовая последовательность обрабатывается драйвером клавиатуры, потом еще чем угодно - и в итоге попадает в Ващшу программу в виде сообщения WM_KEYDOWN/UP. Один из параметров этого сообщения содержит уже готовый ВИРТУАЛЬНЫЙ код клавиши - например, VK_LEFT (стрелка влево). Вот его и используйте. Для однобайтовых ASCII-клавиш (буквы, цифры, Enter, Esc и т.д.) этот код совпадает с ASCII-кодом, для расширенных - нет (потому что у расширенных никакого ASCII-кода просто нет).

См. Virtual-Key Codes в справке API.


Device   (2002-06-22 12:51:00) [2]

влево: #37
вверх: #38
вправо: #39
вниз: #40


Johnny Smith   (2002-06-20 15:57:00) [3]

Если часто приходится искать коды клавиш, то могу посоветовать такой метод:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage(inttostr(Key));
end;


MBo   (2002-06-20 15:50:00) [4]

VK_Down


Наверх

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