Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Вниз

Как сделать цикл пока не нажата клавиша?   Найти похожие ветки 

 
maxim2   (2002-08-07 06:31) [0]

Привет всем!
Вот собсно и всё.


 
VAleksey   (2002-08-07 07:31) [1]

GetAsyncKeyState
GetKeyboardState
посмотри описание на них в файле Win32.hlp.


 
Polevi   (2002-08-07 09:16) [2]

flag:=true;
while flag do
begin
Application.ProcessMessages;
...
end;

procedure Button1Click
begin
flag:=false;
end;


 
VAleksey   (2002-08-07 10:09) [3]


> Polevi © (07.08.02 09:16)

ввиду клавиша а не кнопка.


 
c0pYc@t   (2002-08-07 10:18) [4]

repeat
.....
until KeyPressed=<здесь код клавиши>;


 
PVOzerski   (2002-08-07 10:58) [5]

>repeat
>.....
>until KeyPressed=<здесь код клавиши>;

такое можно только в проге с "левым" Crt-совместимым модулем (такие можно найти) и, естественно, либо консольной, либо с "извращенным" GUI вроде WinCrt от BP7 (А ведь автор вопроса указал D6).

>GetAsyncKeyState
Вот это - действительно то, что надо. Только сработает безотносительно того, какая форма и даже данное ли приложение активно. А такая ситуация нужна не всегда, придётся вставлять проверку дополнительных условий.

Есть еще варианты, завязанные на обработку событий активного окна (но в том числе и на OnKeyPress). При этом либо в цикл вставляется Application.ProcessMessages (что замедляет счёт в цикле), либо цикл запускается в отдельном потоке. В ответ на событие обработчик меняет значение некоего флага, которое проверяем в нашем цикле и по его изменению делаем break.


 
Ученик   (2002-08-07 11:16) [6]

function KeyPressed : Boolean;
var
Msg : TMsg;
begin
while GetMessage(Msg, 0, 0, 0) and
(Msg.Message <> WM_QUIT) and (Msg.Message <> WM_KEYDOWN) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Result := True
end;



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

Форум: "Основная";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
1-60699
Begin
2002-08-06 06:18
2002.08.19
Я конечно извиняюсь за глупый вопрос.... Но все когда то учились


1-60633
ttt
2002-08-08 15:10
2002.08.19
Как динамически добавить фрейм на форму?


1-60675
BlackSun
2002-07-28 16:33
2002.08.19
Заполнение формы


8-60758
vbazik
2002-04-11 18:28
2002.08.19
Сшивка изображений


14-60831
_Smart
2002-07-20 03:07
2002.08.19
Помогите с продвижением софта в массы...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский