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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2015, 18:11   #1
Andreyqw
Новичок
Джуниор
 
Регистрация: 10.07.2015
Сообщений: 3
Сообщение Непрерывное движение Image

Здравствуйте. Нужна помощь. Есть одна картинка. Необходимо, чтобы она двигалась (желательно именно по диагонали) по всей форме до границ. При этом, дойдя до границ, она должна, как бы, оттолкнуться от нее (выходит, что угол должен быть 90 градусов) и продолжить путь. При нажатии на нее, она должна исчезнуть и появится в случайном месте и продолжать так же двигаться. И так бесконечно. Завершение программы: красный крестик вверху.
Andreyqw вне форума Ответить с цитированием
Старый 10.07.2015, 19:08   #2
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

По таймеру менять координаты. Несколько переменных-флагов куда двигаться - лево/право/верх/низ. Сравнивать положение картинки её размеров и размеры клиентской области.
ResourceSpace вне форума Ответить с цитированием
Старый 10.07.2015, 20:39   #3
Andreyqw
Новичок
Джуниор
 
Регистрация: 10.07.2015
Сообщений: 3
По умолчанию

Спасибо, уже разобрался. Но возник такой вопрос: как сделать автоматическую смену картинок? Имеется Image и ImageList. Необходимо, чтобы при нажатии на Image происходила смена картинок. Нажать нужно только ОДИН раз. Смена проходит автоматически. При достижение последней картинки, появляется Image и при следующем клике снова все повторяется.
Думаю делается это через Timer, но не пойму как
Andreyqw вне форума Ответить с цитированием
Старый 10.07.2015, 22:28   #4
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Можно в том же таймере. Можно во втором, смотря с какой скоростью двигается и меняется. Переменная "номер текущего кадра". При нажатии сбрасываем её в ноль и включаем второй таймер. А в таймере смена кадра на тот который в переменной и увеличение переменной. Если она стала больше чем есть кадров - таймер сам себя выключает.
ResourceSpace вне форума Ответить с цитированием
Старый 11.07.2015, 16:02   #5
Andreyqw
Новичок
Джуниор
 
Регистрация: 10.07.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
Можно в том же таймере. Можно во втором, смотря с какой скоростью двигается и меняется. Переменная "номер текущего кадра". При нажатии сбрасываем её в ноль и включаем второй таймер. А в таймере смена кадра на тот который в переменной и увеличение переменной. Если она стала больше чем есть кадров - таймер сам себя выключает.
Спасибо. А вы не могли бы написать сам код? А то я не совсем понял, как это записать
Andreyqw вне форума Ответить с цитированием
Старый 11.07.2015, 16:43   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Навскидку:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if Image1.Tag<ImageList1.Count then Image1.Tag:=Image1.Tag+1
 else Image1.Tag:=0;
 ImageList1.Draw(Image1.Canvas,0,0,Image1.Tag);
end;
Не проверял, ибо не работаю с этими компонентами давненько.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение одного image к другому (Delphi) Kestin Помощь студентам 0 19.05.2014 12:00
Движение image по форме! RomanRens Общие вопросы Delphi 3 24.02.2012 10:10
Движение разных Image (не могу продумать реализацию) Silly Student C++ Builder 10 26.10.2011 10:20
Непрерывное движение картинки chandrasecar JavaScript, Ajax 2 17.10.2011 15:00
Движение указателя по форме или Image nevo Компоненты Delphi 5 06.04.2008 21:00