Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 15:19   #1
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию Движение рисунка(Delphi)

Я загрузил картинку, написал код для движения картинки
Код:
if key = vk_left then Image1.left:=Image1.left-5;
if key = vk_right then Image1.left:=Image1.left+5; 
if key = vk_up then Image1.top:=Image1.top-5; 
if key = vk_down then Image1.top:=Image1.top+5;
А как сделать, так что бы картинка не выходила за границы формы?
2009 вне форума Ответить с цитированием
Старый 09.03.2009, 16:20   #2
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

соответственно поставить ограничение на смену позиции, а конкретно: уменьшаем по оси X или увеличиваем координату до тех пор, пока не получим ноль или getmaxX, и соответственно уменьшаем по оси Y или увеличиваем координату до тех пор, пока не получим ноль или getmaxY
capta1n вне форума Ответить с цитированием
Старый 10.03.2009, 18:21   #3
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

а можно по подробней?
2009 вне форума Ответить с цитированием
Старый 10.03.2009, 18:32   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
if (key = vk_left) and (Image1.left>=5) then Image1.left:=Image1.left-5;
if (key = vk_right) and (Image1.left<=Form1.ClientWidth-5)  then Image1.left:=Image1.left+5; 
if (key = vk_up) and (Image1.Top>=5) then Image1.top:=Image1.top-5; 
if (key = vk_down) and (Image1.left<=Form1.ClientHeigth-5) then Image1.top:=Image1.top+5;
вроде так...писал по памяти
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2009, 16:38   #5
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

вверх и влево работает правильно, а вправо и вниз работает не корректно!
2009 вне форума Ответить с цитированием
Старый 12.03.2009, 22:07   #6
Darkstar
 
Регистрация: 16.11.2008
Сообщений: 8
По умолчанию

2009 как сделаеш скинь плиз тоже подобное надо.
Darkstar вне форума Ответить с цитированием
Старый 12.03.2009, 22:17   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А кто будет учитывать размер самой картинки?
if (key = vk_left) and (Image1.left>5) then
Image1.left:=Image1.left-5;
if (key = vk_right) and (Image1.left+Image1.Width<ClientWidth-5) then
Image1.left:=Image1.left+5;
if (key = vk_up) and (Image1.Top>5) then
Image1.top:=Image1.top-5;
if (key = vk_down) and (Image1.Top+Image1.Height<ClientHeight-5) then
Image1.top:=Image1.top+5;
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Броуновское движение (Delphi) ExoByte Помощь студентам 9 01.06.2009 11:25
Движение шарика по контуру delphi Map4eJIo Помощь студентам 2 03.03.2009 11:10
Delphi: «Сохранение» рисунка Jean-Esther Помощь студентам 5 01.03.2009 17:21
Отражение рисунка от стенок Надежда.. Мультимедиа в Delphi 14 20.12.2008 23:24
Разгупировка рисунка asale Microsoft Office Excel 1 23.10.2007 22:30