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

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

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

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

Ответ
 
Опции темы
Старый 06.04.2010, 11:31   #1
sergeitr10
AnyKey`щик
 
Регистрация: 26.03.2010
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Почему текст_фиелд показывается все время?

Вообщем там при нажатии на кнопку 5 идет заход в форму с текст_фиелдом, на котором кнопку "назад" и "сохранить", при нажатии на "сохранить" идет сохранение картинки в файл и эта форма с текст_фиелдом заново показывается, а при нажатии на "назад" идет дальше по программе, и показывается форма с текст_фиелдом.
Вопрос:почему при выходе из текст_фиелда он показывается заново, даже если я не нажимаю 5?
Вот отрезок кода.
repeat //главный цикл программы

repeat
setColor(255,255,255);
fillRect(0,0,200,200);
clicked:=getClickedCommand;
drawImage(golowa[numgolowa],50,30)
drawImage(tulowische[numtulowische],50,49)
drawImage(nogi[numnogi], 0,68 ) ;
repaint;
delay(100);
if (getKeyPressed=KE_KEY1) then begin numgolowa:=numgolowa-1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY3) then begin numgolowa:=numgolowa+1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY4) then begin numtulowische:=numtulowische-1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY6) then begin numtulowische:=numtulowische+1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY7) then begin numnogi:=numnogi-1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY9) then begin numnogi:=numnogi+1; setColor(255,255,255); fillRect(0,0,200,200); end;
if (getKeyPressed=KE_KEY5) then begin
showForm;
clearForm;
tfid_1:=formAddTextField('введите путь к файлу:' , 'c:/predefgallery/predefgraphics/obraz1.png',100, TF_ANY);
addCommand(backcommand2);
addCommand(savecommand);
repeat
clicked:=getClickedCommand;
until(clicked<>emptyCommand);
if (clicked=backcommand2) then begin clearForm; showCanvas; delay(1000); end;
if (clicked=savecommand) then begin
showCanvas;
saveimage:=imageFromCanvas(0,0,100,100);
setColor(0,0,0);
fillRect(0,0,200,200);
setColor(255,255,0);
drawText('сохранение..',10,10);
repaint;
flagsave:=png3.save_png(saveimage,formGetText(tfid _1));
delay(2000);
end;
end;
if numgolowa<1 then numgolowa:=1;
if numgolowa>5 then numgolowa:=5;
if numtulowische<1 then numtulowische:=1;
if numtulowische>5 then numtulowische:=5;
if numnogi<1 then numnogi:=1;
if numnogi>5 then numnogi:=5;
until (clicked<>emptyCommand); //подождать нажатие на команды


if (clicked=exitcommand) then halt;
if (clicked=helpcommand) then begin
showForm;
clearForm;
setTicker('помощь');
helpmessageid:=formAddString('perseditor-едактор персонажей для мобильного телефона. Управление: 1и3-подбор головы,4и6-подбор туловища,7и9-подбор ног. 5-сохранить в png в фс.');
addCommand(backcommand);
repeat

clicked:=getClickedCommand;
until(clicked<>emptyCommand);
showCanvas;
end;


until (exitflag=1);
(Offline)
 
Ответить с цитированием
Старый 06.04.2010, 11:47   #2
gost6681
Оператор ЭВМ
 
Регистрация: 06.11.2008
Сообщений: 26
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос:почему при выходе из текст_фиелда он показывается заново, даже если я не нажимаю 5?

Подскажите пожайлуста

Последний раз редактировалось jimon, 06.04.2010 в 13:06.
(Offline)
 
Ответить с цитированием
Старый 10.07.2010, 15:38   #3
Freez
Оператор ЭВМ
 
Аватар для Freez
 
Регистрация: 19.09.2009
Сообщений: 43
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Почему текст_фиелд показывается все время?

я конечно не особенно в этом понимаю но возможно из за
if (clicked=backcommand2then begin clearFormshowCanvasdelay(1000); end
А TextField показывается через 1(сек) после нажатия назад?
Разве Repaint не надо добавить?
(Offline)
 
Ответить с цитированием
Старый 10.07.2010, 18:30   #4
DIMMON4IK
Знающий
 
Аватар для DIMMON4IK
 
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений
(для 78 пользователей)
Ответ: Почему текст_фиелд показывается все время?

Сообщение от Freez Посмотреть сообщение
я конечно не особенно в этом понимаю но возможно из за
if (clicked=backcommand2then begin clearFormshowCanvasdelay(1000); end
А TextField показывается через 1(сек) после нажатия назад?
Разве Repaint не надо добавить?
Repaint нужен когда работа идёт с canvas, а тут режим форм
__________________


(Offline)
 
Ответить с цитированием
Старый 10.07.2010, 18:35   #5
Freez
Оператор ЭВМ
 
Аватар для Freez
 
Регистрация: 19.09.2009
Сообщений: 43
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Почему текст_фиелд показывается все время?

Сообщение от DIMMON4IK Посмотреть сообщение
Repaint нужен когда работа идёт с canvas, а тут режим форм
Нет здесь переход из формы в ganvas.Переход есть а repaita нет вот мне и показалось странным
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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