skilk Опубликовано 14 сентября, 2005 Жалоба Поделиться Опубликовано 14 сентября, 2005 Вопрос может глупый, но всё же. Не так давно в интернете я нашёл программу, при работе которой на шапке формы высвечивается нажатая клавиша. Хотелось бы узнать как это делается. Всё на Delphi. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Stolik Опубликовано 14 сентября, 2005 Жалоба Поделиться Опубликовано 14 сентября, 2005 (изменено) Каждой кливише соответствует свой код, программа его считывает. Вот нашел у себя древнющую прогу (на Паскале правда, но какая разница?), которая этим и занимается. Таблицу кодов можно найти в любом справочнике. Еще где-то у меня была прога, которая выводит на экран сразу название клавиши - но где она, фиг знает, сто лет уже не юзал. Если ОЧЕНЬ надо, скажи, попробую найти. Если нужны пояснения к этой проге, тоже сообщи... ---------------------------------- Program ScanCodes; uses Dos; var r : registers; begin {ScanCodes} with r do begin repeat {1} repeat {2} Flags:= 0; AH := 1; Intr(22, r); until Flags <> 0022; {2} AH:= 0; Intr(22, r); writeln(AL:5, AH:5); until (AL = 27) and (AH = 1); {1} end; end. {ScanCodes} ------------------------------ Чуть не забыл. Прога работает до нажатия Esc. Изменено 14 сентября, 2005 пользователем Stolik Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
skilk Опубликовано 15 сентября, 2005 Автор Жалоба Поделиться Опубликовано 15 сентября, 2005 Коды клавиш я нашёл, но как, а точнее какая функция в Delphi распазнает эту самую клавишу. Короче чё сказал, сам не понял. За код спасибо, но он мне сильно не помог, если не трудно, поищи ту прогу. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Stolik Опубликовано 15 сентября, 2005 Жалоба Поделиться Опубликовано 15 сентября, 2005 skilk Сейчас катастрофически нет времени, чесслово, поищу... Может случайно на глаза попадется. Скорее всего, надо искать на старых дискетах, а это долго. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 15 сентября, 2005 Жалоба Поделиться Опубликовано 15 сентября, 2005 Нужные события: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);...procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);...procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); Параметр Key - это то, что тебе надо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
skilk Опубликовано 16 сентября, 2005 Автор Жалоба Поделиться Опубликовано 16 сентября, 2005 За KEY спасибо, но появилась другая проблема. Дело в том, что я пытаюсь отследить нажатие клавиш с помощью HOOK, а он на KEY ругается, говорит что он UNDECLARED. КАК БЫТЬ??? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 19 сентября, 2005 Жалоба Поделиться Опубликовано 19 сентября, 2005 Конечно undeclared, потому что Делфевая обработка события это одно, а hook - другое. Посмотри здесь как ставится hook на перехват нажатий клавиш, а вот описание функции KeyboardProc, которая будет отлавливать нажатие клавиш. Параметр wParam и есть то, что тебе надо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.