Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 938

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

У меня возникла проблема при опросе клавиатуры.
Мне нужно в цикле опрашивать клавиатуру и при нажатии на кнопки выполнять какие-то действия. Допустим при первом нажатии на кнопку 1 - выдавать сообщение, а при повторном нажатии стирать.

У меня все получается, если я быстро нажимаю и отпускаю кнопку, а если я держу кнопку нажатой, то надпись начинает моргать.

Как мне опрашивать клавиатуру, чтобы моя программа видела когда кнопка нажата, а когда отпущена? Была мысль вставить ассемблерный код, но я не знаю регистра клавиатуры и принципа скидывания туда информации.

Приложение:
  1. Uses Crt;
  2. Var Key : Char;
  3. I:boolean;
  4. Begin
  5.  
  6. Repeat
  7.  
  8. If KeyPressed Then Begin Key:=ReadKey;
  9.  
  10. Case Key Of
  11.  
  12. #45: Begin
  13. If I=False Then begin
  14. gotoxy(40,12);Write('******');
  15. i:=true;
  16. End;
  17. If I=true Then begin
  18. gotoxy(40,12);Write(' ');
  19. i:=fasle;
  20. End;
  21.  
  22. End;
  23.  
  24.  
  25. End;
  26. Until Key=#27;


NSS Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: NSS (статус: Посетитель)
Вопрос отправлен: 21 января 2011, 11:02
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 23; последнее сообщение — 22 января 2011, 18:58; участников в обсуждении: 6.

Страницы: [« Предыдущая] [1] [2]

КМ

КМ (статус: Посетитель), 22 января 2011, 16:08 [#21]:

в общем то не совсем ясна задача, чтобы
ято то дельное подсказать...
NSS

NSS (статус: Посетитель), 22 января 2011, 16:49 [#22]:

Задача: сделать так в Паскале или консоле Делфи, чтобы при нажатии кнопки выполнилась процедура Proc_1 и больше не выполнялась. А при повторном нажатии кнопки выполнилась процедура Proc_2 тоже один раз. Потом опять Proc_1 и так далее.

P.S. А сейчас процедуры Proc_1 и Proc_2 выполняются поочереди (как и должно быть) но по много раз пока я держу кнопку нажатой.
КМ

КМ (статус: Посетитель), 22 января 2011, 18:58 [#23]:

ммда...
сообщение виндуз нужно перехватывать
тут уже писали...

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 23:16
Выполнено за 0.03 сек.