forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Долгое действие при нажатии (http://forum.boolean.name/showthread.php?t=12002)

Dimon 22.02.2010 21:20

Долгое действие при нажатии
 
У меня если например нажимаешь и держиш эту кнопку то выполняется действие. Отпускаешь-перестает. Как можно сделать так, чтобы нажал на кнопку- и действие выполнялось, пока я не нажал другую кнопку?
ПРобывал

if key = GA_FIRE then
repeat
действие
until (key = GA_FIRE);

ну тогда когда держу кнопку-действие идёт, отпускаю заканчивается. А мне нужно чтоб было всегда пока не нажму на кнопку.

odd 22.02.2010 21:31

Ответ: Долгое действие при нажатии
 
Установи просто флаговую переменную. Типа так.

PHP код:

var loopboolean;

loop:=false;
if 
key GA_FIRE then loop := true;
while (
loop) do
begin
// что-то делаем
key:=GetKeyPressed;
if 
key GA_FIRE then loop:=false;
end


Dimon 23.02.2010 11:50

Ответ: Долгое действие при нажатии
 
oDD те спс, А еще нужно: Чтоб если НАЖАЛ НА КНОПКУ ТО ДЕЙСТВИЕ СОВЕРШАЕТСЯ БЕскОНЕЧНО ПОКА НЕ НАЖМЕШ ЕЩЕ кнопку. НАПРИМЕР МНЕ НУЖНО ЧТОБ ПРИ НАЖАТИИ НА 0 ВЫСКАКИВАЛИ ЧАСЫ с сЕКУНДАМИ. И чтоб секунды и минуты и часы, всё время обновлялось каждую секунду, пока не нажмёш на 0 опять.

у меня есть
Цитата:

if (getKeyPressed = KE_KEY0) then
begin
Cls2;
Time:=GetCurrentTime;
SetFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD, FONT_SIZE_MEDIUM);
SetColor(0, 0, 0); wi:=GetWidth; hi:=GetHeight;
TimeText := 'Время - ' + GetHour(Time);
TimeText := TimeText + ':'+ GetMinute(Time);
TimeText := TimeText + ':'+ GetSecond(Time);
DrawText(TimeText,(wi-GetStringWidth(TimeText))/2, 98);
Repaint;
end;
Как мне добавить такую вещь???

im_zorg 11.05.2010 21:11

Ответ: Долгое действие при нажатии
 
if (getKeyPressed = KE_KEY0) then
repeat
Cls2;
Time:=GetCurrentTime;
SetFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD, FONT_SIZE_MEDIUM);
SetColor(0, 0, 0); wi:=GetWidth; hi:=GetHeight;
TimeText := 'Время - ' + GetHour(Time);
TimeText := TimeText + ':'+ GetMinute(Time);
TimeText := TimeText + ':'+ GetSecond(Time);
DrawText(TimeText,(wi-GetStringWidth(TimeText))/2, 9;
Repaint;
until getKeyPressed<>KE_NONE;


Часовой пояс GMT +4, время: 10:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot