Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.23;
Скачать: CL | DM;

Вниз

Как выйти из цикла по нажатию клавиши   Найти похожие ветки 

 
Alfred ©   (2002-12-12 11:36) [0]

Как выйти из цикла по нажатию клавиши? Возможно это наивный вопрос, но в СИ это делалось элементарно, а понадобилось в Паскале (Delphi 5) и ничего не получается.


 
Song ©   (2002-12-12 11:46) [1]

GetKeyState(), GetAsyncKeyState(), GetConsoleInput()
Для таких вещей используйте Паскаль. В Delphi нелинейное программирование.


 
KSergey ©   (2002-12-12 11:48) [2]

А в каком, интерсно, Си это делалось элементарно? Си - язык. Интересует конкретный компилятор/платформа.
Идет речь и клавиатурных клавишах? Ну как в любом приложении Win32. Например, для Delphi:
1) пишем обработчик KeyPress (или подобного сообщения/события), в котором взводим некий глобальный флаг (напр., уст его в True). Перед циклом флаг сбрасываем (False), внутри цикла делаем Application.ProcessMessages, после которого проверяем состояние флага. Если взвелся - значит произошло событие нажатия клавиши - прерываем цикл.
2) в цикле используем PeekMessage, вылавливая во входной очереди сообщения на вроде WM_CHAR и т.п. Если они там есть - выходим из цикла.


 
KSergey ©   (2002-12-12 11:50) [3]

Уточнение: имеется в виду или 1) или 2)


 
Alfred ©   (2002-12-12 11:56) [4]

Спасибо за оперативные ответы. СИ++ 2.0. Это было давно (под DOS), но программы до сих пор весьма активно эксплуатируются в непрерывном режиме круглые сутки.


 
Alfred ©   (2002-12-12 12:30) [5]

Еще раз спасибо, KSergey! Попробовал по 1-му варианту и все получилось. Использовал KeyPress - цикл заканчивается по нажатию любой клавиши. Использовал KeyDown - цикл можно закончить по нажатию заданной клавиши, например Esc.


 
KSergey ©   (2002-12-12 12:58) [6]

Пожалуйста. Рад, что полегчало.


 
Godness ©   (2002-12-13 21:29) [7]

Вот черт - не успел ... бывает ... :)



Страницы: 1 вся ветка

Текущий архив: 2002.12.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-74719
Лагутин Антон
2002-12-13 21:55
2002.12.23
Помогите с DBGrid


14-74930
AL2002
2002-12-02 09:46
2002.12.23
Заурядный вопрос про погоду...


14-74937
Marat
2002-12-02 16:08
2002.12.23
Все тот же вопрос про серийный номер процессора.


14-74884
Anatoly Podgoretsky
2002-11-30 11:54
2002.12.23
Именинники 30 ноября


14-74901
Николай Быков
2002-12-01 12:02
2002.12.23
Посоветуйте принтер до 3000 рублей, но можно и до 3500 р.