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=12338)

sergeitr10 06.04.2010 11:31

Почему текст_фиелд показывается все время?
 
Вообщем там при нажатии на кнопку 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);

gost6681 06.04.2010 11:47

Вопрос:почему при выходе из текст_фиелда он показывается заново, даже если я не нажимаю 5?

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

Freez 10.07.2010 15:38

Ответ: Почему текст_фиелд показывается все время?
 
я конечно не особенно в этом понимаю но возможно из за
PHP код:

if (clicked=backcommand2then begin clearFormshowCanvasdelay(1000); end

А TextField показывается через 1(сек) после нажатия назад?
Разве Repaint не надо добавить?

DIMMON4IK 10.07.2010 18:30

Ответ: Почему текст_фиелд показывается все время?
 
Цитата:

Сообщение от Freez (Сообщение 154058)
я конечно не особенно в этом понимаю но возможно из за
PHP код:

if (clicked=backcommand2then begin clearFormshowCanvasdelay(1000); end

А TextField показывается через 1(сек) после нажатия назад?
Разве Repaint не надо добавить?

Repaint нужен когда работа идёт с canvas, а тут режим форм

Freez 10.07.2010 18:35

Ответ: Почему текст_фиелд показывается все время?
 
Цитата:

Сообщение от DIMMON4IK (Сообщение 154091)
Repaint нужен когда работа идёт с canvas, а тут режим форм

Нет здесь переход из формы в ganvas.Переход есть а repaita нет вот мне и показалось странным:dontknow:


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

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