Главная страница
    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.006 c
3-60482
AccsProgr
2002-07-28 13:10
2002.08.19
Как программно поменять 2 записи местами (Custom сортировка)


14-60818
MsGuns
2002-07-23 16:40
2002.08.19
Пиктограммы


4-60920
Izyum
2002-06-13 22:47
2002.08.19
Как программно закрыть окно


3-60511
kiralse
2002-07-30 08:03
2002.08.19
Как сделать быстрый поиск по двум таблицам


1-60666
fuxx
2002-08-06 10:16
2002.08.19
C++ Builder и TStringGrid. Неправильно выводит первые строки.





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