Помогите с кодом
|
|
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
| Все правильно. После нажатия и показа картинки у тебя выход из программы. Сделай задержку, что ли. 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
| все классно но мышь пропала(( вот весь код
Сообщение отредактировал 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 =/ , ну с этим я надеюсь ты разберешься. Вот твой проект - правильно-работающий)))
|
|
| |
Sneijder | Дата: Вторник, 06.09.2011, 21:56 | Сообщение # 8 |
Начальный
Группа: Проверенные
Сообщений: 55
Награды: 0
Репутация:
« 6 »
Статус: Offline
| Благодарю=)
|
|
| |