Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.011 c
1-74661
dimonf
2002-12-12 21:56
2002.12.23
Помогите разобраться с алгоритмом!!!


1-74709
MaximatorVeter
2002-12-13 18:32
2002.12.23
Как хранить введенные пользователем данные?


7-75011
Kikimora
2002-10-21 01:01
2002.12.23
Мне необходимо послать информацию в LPT порт


7-75003
no name
2002-10-19 14:28
2002.12.23
Пароль на ScreenSaver


1-74716
Armageddon
2002-12-10 22:22
2002.12.23
К- ричные числа.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский