| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Аналог keypressed в Delphi |
| Автор: new_ 8.3.2005, 02:33 |
| Помогите кто нибудь!! В TP7 цикл REPEAT .... .... Until keypressed; выполняется до нажатия любой кнопки на клавиатуре. Есть ли что-нибудь аналогичное в Delphi? Очень надо!! Заранее СПАСИБО!! |
| Автор: Poseidon 8.3.2005, 04:45 | ||||||
| Не знаю что такое TP7, но в Delphi можно так (мне кажется не самый лучший вариант, но работающий): Значит так. 1. Обьявляешь глобальную переменную типа boolean; Что то вроде этого:
2. В нужной процедуре пишим вот что
3. И наконец в событии OnKeyPress
Только есть определенные проблемы (я же говорю, не самый лучший вариант). Во первых нужно еще знать в OnKeyPress чего это засунуть (формы, кнопки или еще чего), а во-вторых, лучше засунуть цикл в отдельный поток, а то вся прога "повиснет" и никакое нажатие ее не спасет. PS. Код дан для примера, чтобы была понятна суть того, как это сделать. Использовать же такой способ (именно в случае, когда надо остановить цикл) я не рекомендую. |
| Автор: p0s0l 8.3.2005, 11:21 | ||||||
Можно использовать функцию GetKeyboardState. Она возвращает массив из 256 байт, каждому элементу соответствует определенная кнопка:
Тогда KeyPressed будет выглядеть примерно так:
По смыслу, возможно, нужно не все кнопки проверять, к примеру, если не надо учитывать Control, Alt, Shift, CapsLock, NumLock, ScrollLock, то будет так:
|
| Автор: new_ 9.3.2005, 21:16 |
| Большущее спасибо Poseidon и p0s0l за предоставленные примеры, обязательно проверю, а в OnKeyPress не заходит ни разу. |