Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 22.02.2010, 21:20   #1
Dimon
Оператор ЭВМ
 
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
Долгое действие при нажатии

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

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

ну тогда когда держу кнопку-действие идёт, отпускаю заканчивается. А мне нужно чтоб было всегда пока не нажму на кнопку.
(Offline)
 
Ответить с цитированием
Старый 22.02.2010, 21:31   #2
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Долгое действие при нажатии

Установи просто флаговую переменную. Типа так.

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
(Offline)
 
Ответить с цитированием
Старый 23.02.2010, 11:50   #3
Dimon
Оператор ЭВМ
 
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
Ответ: Долгое действие при нажатии

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, 9;
Repaint;
end;
Как мне добавить такую вещь???
(Offline)
 
Ответить с цитированием
Старый 11.05.2010, 21:11   #4
im_zorg
Знающий
 
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений
(для 61 пользователей)
Ответ: Долгое действие при нажатии

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;
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com