Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

768

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

343

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

209

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

158

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-15 03:46:17-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 159872

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Nival
Дата: 07.02.2009, 18:17 Консультация закрыта
Поступило ответов: 0

Здравствуйте!
Необходимо сделать простую анимацию shape1 из координат x1 y1 до x2 y2
Подскажите пожалуйста, как можно реализовать это?

Ответов пока не поступило

Мини-форум консультации # 159872

q_id

Вадим Исаев ака sir Henry

Мастер-Эксперт

ID: 425

1

= общий =    07.02.2009, 19:44

Можно в цикле менять координаты от Х1 до Х2. Ну и У соответственно. В самом цикле сделать задержку в полсекунды (Sleep(500)), а то компьютеры нынче сильно быстрые. smile

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

2

= общий =    07.02.2009, 19:49

необходимо написать уравнение линии??

Monah

3

= общий =    07.02.2009, 19:55

ну да это на ответ даже не тянет. Меняйте значение Left и Top у компонента. Координаты задаются относительно формы.

q_id

Вадим Исаев ака sir Henry

Мастер-Эксперт

ID: 425

4

= общий =    07.02.2009, 20:05

Если движение компонента должно идти по линии, то да, линии. Вы же не написали, какая именно должна быть у Вас анимация. Поэтому я изложил Вам только принцип - меняете координаты компонента в пределах заданных от Х1 до Х2. Это будет движение по горизонтали. Если от У1 до У2 - это будет движение по вертикали. Скомбинируете и то и другое - движение будет такое же комбинированное.
Для Вас сейчас главное определиться, какое именно движение Shape должно быть. Возьмите миллиметровку или бумагу в клеточку, нарисуйте на ней форму. На фоме нарисуйте Shate в своих начальных координатах. Обозначте конечную точку его движения и постройте график. По этому графику уже вывести уравнение движения - раз плюнуть.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

5

= общий =    07.02.2009, 20:57

уравнение написал, пишу код в таймер

for x:=0 to 500 do
begin
Shape1.Left:=x;
Shape1.Top:=x;
end;

он сразу перескакивает, как сделать чтобы он как бы летел к этой точке а не сразу туда перемещался)

Monah

6

= общий =    07.02.2009, 21:54

application.processmessage вставь в цикл

неизвестный

7

= общий =    07.02.2009, 22:11

о, спасибо!
Всё как надо получилось!

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 111

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0