Авторизироваться
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
Помогите с кодом
05.09.2011 в 21:45 Сообщение #1
Sneijder
Начальный
Проверенные
Сообщений: 55
Награды: 0
Репутация: 6
Offline
пишу прогу ,и мне нужно чтоб при нажатии на определеную картинку появлялась другая картинка,я смог это сделать но как только отпускаешь кнопку изображение пропадаетю Помогите решить проблему((

procedure progi;
begin
drawimage(help,0,20);
end;

procedure menup;
begin
drawImage(menu,0,0);
if(x<40)and(y<20)and(GetKeyPressed=KE_KEY5) then progi
end;
05.09.2011 в 23:42 Сообщение #2
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
Все правильно. После нажатия и показа картинки у тебя выход из программы. Сделай задержку, что ли.
Code

if(x<40)and(y<20)and(GetKeyPressed=KE_KEY5) then progi
delay(50000);
end;  
06.09.2011 в 17:34 Сообщение #3
Nextik
Программист
Проверенные
Сообщений: 273
Награды: 0
Репутация: 42
Offline
12121, выход из программы и выход из процедуры это ОЧЕНЬ РАЗНЫЕ ПОНЯТИЯ.
Sneijder, если я правильно понял тебя, то предлагаю сделать дополнительную переменную например типа boolean. Будет true будет показывать картинку, false - не будет показывать картинку:
Code
procedure progi;
begin
drawimage(help,0,20);
end;

procedure menup;
begin
drawImage(menu,0,0);
if(x<40)and(y<20)and(GetKeyPressed=KE_KEY5) then pokaz:=true
if pokaz=true then progi
end;

у этого кода есть свои минусы и плюсы,но это так, коротенько))) я бы сделал немного сложнее:
Code
procedure progi;
var
exit:boolean;
key_clicked:integer;
begin
repeat
if key_clicked=KE_POUND then exit:=true
key_clicked:=GetKeyClicked;
drawimage(help,0,20);
repaint;
delay(1);
until exit=true;
pokaz:=false;
end;

procedure menup;
begin
drawImage(menu,0,0);
if(x<40)and(y<20)and(GetKeyPressed=KE_KEY5) then pokaz:=true
if pokaz=true then progi
end;
06.09.2011 в 18:06 Сообщение #4
Sneijder
Начальный
Проверенные
Сообщений: 55
Награды: 0
Репутация: 6
Offline
Большое спасибо=) я действительно пробывал boolean. Я делал все и все работало но картинка все равно исчезала. А насчет задержки тоже добавлял провисало сейчас ваш код попробую)))
06.09.2011 в 18:20 Сообщение #5
Sneijder
Начальный
Проверенные
Сообщений: 55
Награды: 0
Репутация: 6
Offline
все классно но мышь пропала(( вот весь код
Прикрепления: Amigo_OS.rar (235.0 Kb)
Сообщение отредактировал Sneijder - Вторник, 06.09.2011, 18:21
06.09.2011 в 20:46 Сообщение #6
Nextik
Программист
Проверенные
Сообщений: 273
Награды: 0
Репутация: 42
Offline
мышка мышка мышка... что ж ты сразу весь код не выложил?)))) ладно, сейчас что-нибудь придумаю))
06.09.2011 в 21:13 Сообщение #7
Nextik
Программист
Проверенные
Сообщений: 273
Награды: 0
Репутация: 42
Offline
ладно, всё довольно таки просто. Вопрос только в том, сумеешь ли ты сделать чтобы картинка исчезала когда ты хочешь)) если нет - дам кусочек сыра... тьфу! кода))) То что я написал первым было твоим решением, и советую поставить задержку в бесконечном цикле после repaint - delay(1) и убрать все остальные, это обеспечит быстродействие твоей программе, сам так делаю, но у меня есть подозрения что даже от этой задержки есть вероятность что процессор устройства очень сильно нагреется, ну для этого люди придумали счётчик FPS иначе бы все процессоры бы посгарали... Я никак не пойму как у тебя картинка при моём первом коде исчезала =/, она сможет исчезнуть если только переменной pokaz задать значение false =/ , ну с этим я надеюсь ты разберешься. Вот твой проект - правильно-работающий)))
Прикрепления: 9347410.rar (234.8 Kb)
06.09.2011 в 21:56 Сообщение #8
Sneijder
Начальный
Проверенные
Сообщений: 55
Награды: 0
Репутация: 6
Offline
Благодарю=)
  • Страница 1 из 1
  • 1
Поиск: