2016-10-11 5 views
-2

Я хочу, чтобы 5 изображений неоднократно перемещались из верхней части формы в нижнюю часть, каждая из которых немного впереди предыдущей, со случайными значениями слева. Я попытался сделать это, хотя они всегда, кажется, выравнивают свои главные ценности друг с другом. По форме активировать их верхние значения все установлены примерно на 120 друг от друга.Хотите 5 изображений для повторного перехода от верхней части экрана к нижней части экрана

код: (в таймере)

////// image1 ////// 
if image1.Top > 600 then begin 
image1.visible := true; 
image1.top := -300; 
repeat 
ml1 := randomrange(0, 9); 
until (ml1 <> ml2) and (ml1 <> ml3) and (ml1 <> ml4) and (ml1 <> ml5); 
case ml1 of 
    1 : image1.left := 8; 
    2 : image1.left := 80; 
    3 : image1.left := 152; 
    4 : image1.left := 224; 
    5 : image1.left := 296; 
    6 : image1.left := 368; 
    7 : image1.left := 440; 
    8 : image1.left := 512; 
    9 : image1.left := 584; 
end;//case 
end;//if 

все изображения имеют один и тот же код. в отдельном таймере У меня есть максимальное значение каждого изображения, увеличенное на ту же сумму с тем же интервалом.

+0

Вы говорите, что верх изображения увеличен в отдельный таймер. Но поскольку у вас есть ваши проблемы, это то, что вам нужно показать. Нет смысла показывать нам немного кода, который не представляет проблемы. Существует ряд других вопросов; Зачем использовать отдельные таймеры? они неизбежно выйдут из строя. И почему верхняя часть кода здесь и в другом таймере? Это должно быть одно или другое! (не то, что должно быть больше одного ...) – Dsm

+0

Я имел в виду, что есть еще один таймер, который я использовал для всех движений 5 изображений. Это не может быть проблемой, поскольку все они используют один и тот же интервал и: image1.top: = image1.top + 5; image2.top: = image2.top + 5; и т. д. – User049

+1

Это очень неэффективный способ анимации. Не используйте элементы управления, которые вы используете. Используйте коробку с краской или прямую OnPaint в форме. –

ответ

0

Рассмотрите два верхних значения, начинающихся с 0 и 120. Один таймер увеличивает их часто. Когда значения достигнут 605 и 725, таймер, который вы указали, срабатывает. Логика (если X> 600, тогда X: = - 300) применяется к обоим. Теперь значения -300 и -300