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 и есть то, что тебе надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти