Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизКак выйти из цикла по нажатию клавиши Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c