Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
Помогите с кодом
SneijderДата: Понедельник, 05.09.2011, 21:45 | Сообщение # 1
Начальный
Группа: Проверенные
Сообщений: 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;
 
12121Дата: Понедельник, 05.09.2011, 23:42 | Сообщение # 2
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
Все правильно. После нажатия и показа картинки у тебя выход из программы. Сделай задержку, что ли.
Code

if(x<40)and(y<20)and(GetKeyPressed=KE_KEY5) then progi
delay(50000);
end;  
 
NextikДата: Вторник, 06.09.2011, 17:34 | Сообщение # 3
Программист
Группа: Проверенные
Сообщений: 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;
 
SneijderДата: Вторник, 06.09.2011, 18:06 | Сообщение # 4
Начальный
Группа: Проверенные
Сообщений: 55
Награды: 0
Репутация: « 6 »
Статус: Offline
Большое спасибо=) я действительно пробывал boolean. Я делал все и все работало но картинка все равно исчезала. А насчет задержки тоже добавлял провисало сейчас ваш код попробую)))
 
SneijderДата: Вторник, 06.09.2011, 18:20 | Сообщение # 5
Начальный
Группа: Проверенные
Сообщений: 55
Награды: 0
Репутация: « 6 »
Статус: Offline
все классно но мышь пропала(( вот весь код
Прикрепления: Amigo_OS.rar (235.0 Kb)


Сообщение отредактировал Sneijder - Вторник, 06.09.2011, 18:21
 
NextikДата: Вторник, 06.09.2011, 20:46 | Сообщение # 6
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
мышка мышка мышка... что ж ты сразу весь код не выложил?)))) ладно, сейчас что-нибудь придумаю))
 
NextikДата: Вторник, 06.09.2011, 21:13 | Сообщение # 7
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
ладно, всё довольно таки просто. Вопрос только в том, сумеешь ли ты сделать чтобы картинка исчезала когда ты хочешь)) если нет - дам кусочек сыра... тьфу! кода))) То что я написал первым было твоим решением, и советую поставить задержку в бесконечном цикле после repaint - delay(1) и убрать все остальные, это обеспечит быстродействие твоей программе, сам так делаю, но у меня есть подозрения что даже от этой задержки есть вероятность что процессор устройства очень сильно нагреется, ну для этого люди придумали счётчик FPS иначе бы все процессоры бы посгарали... Я никак не пойму как у тебя картинка при моём первом коде исчезала =/, она сможет исчезнуть если только переменной pokaz задать значение false =/ , ну с этим я надеюсь ты разберешься. Вот твой проект - правильно-работающий)))
Прикрепления: 9347410.rar (234.8 Kb)
 
SneijderДата: Вторник, 06.09.2011, 21:56 | Сообщение # 8
Начальный
Группа: Проверенные
Сообщений: 55
Награды: 0
Репутация: « 6 »
Статус: Offline
Благодарю=)
 
  • Страница 1 из 1
  • 1
Поиск: