Ожидание нажатия клавиш
В цикле требуется сделать так, чтобы программа ждала, пока не будет нажата клавиша (либо левый, либо правый control). Как это сделать, а то когда я пишу просто
if getkeystate(VK_LCONTROL)<0 then... else if getkeystate(VK_RCONTROL)<0 then...;
то у меня программа просто проскакивает на следующие инструкции, а на ждёт нажатия клавиш.
Заранее спасибо.
Цитата:
Originally posted by crujer
Вопрос такой: имеется цикл в обработчике события form1.keydown
В цикле требуется сделать так, чтобы программа ждала, пока не будет нажата клавиша (либо левый, либо правый control). Как это сделать, а то когда я пишу просто
if getkeystate(VK_LCONTROL)<0 then... else if getkeystate(VK_RCONTROL)<0 then...;
то у меня программа просто проскакивает на следующие инструкции, а на ждёт нажатия клавиш.
Заранее спасибо.
Вопрос такой: имеется цикл в обработчике события form1.keydown
В цикле требуется сделать так, чтобы программа ждала, пока не будет нажата клавиша (либо левый, либо правый control). Как это сделать, а то когда я пишу просто
if getkeystate(VK_LCONTROL)<0 then... else if getkeystate(VK_RCONTROL)<0 then...;
то у меня программа просто проскакивает на следующие инструкции, а на ждёт нажатия клавиш.
Заранее спасибо.
Попробуй всё енто засунуть в Repeat....Until цикл.Пост условие поставь нажата клавиша.Вроди так!:roll:
while TRUE do
begin
...
if getkeystate(VK_LCONTROL)<0 then...
else
if getkeystate(VK_RCONTROL)<0 then...;
...
if(smth) then break; // условие выхода из цикла
end;
Честно говоря, не понял для чего может такое понадобиться. может все можно сделать по-другому? События например, сообщения? Просто в таком режиме программа будет висеть глухо, пока не нажмут левый или правый контрол. Бесконечные циклы в обработчиках событий обычно не ставят.
Проста придумай какуенить Boolean метку и при следующих нажатиях реагировать подругому,до контрола.
чтобы прога в цикле реагировала на внешние раздражители )))... нада в этом цикле добавить Application.ProcessMessages....