Oxigenion

Как сделать слайдер с перелистыванием картинок?

В теме 9 сообщений

Здравствуйте господа! Не знал где создавать тему, думаю подходящее место ей здесь, извините если что-то не так. 

Начал работать в FM недавно, около недели назад.

Интересует вопрос, ответ на который я не нашёл.

Собственно, нужно в Image отображать две картинки, причем сначала первая картинка будет на весь масштаб Image и через какое-то время ее должна сменять вторая картинка видом плавная "прокрутка вверх" без участия пользователя (без нажатия клавиш и т.д. Просто через 2 сек. смена картинки видом скролл вверх)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверить сейчас нет возможности, но я бы для начала попробовал поместить оба изображения в родительский контрол TRectangle со свойством ClipChildren=true для обрезки дочерних изображений, выходящих за границы контрола. Одну картинку растянул по Rectangle, а вторую поместил ровно под ним (через Image2.Position.X:=0, Image2.Position.Y:=Rectangle.Height). Она должна быть полностью "обрезана" нижней границей Rectangle. Ну а дальше через FloatAnimation уменьшаем Image2.Position.Y с начального значения до нуля за нужное время с задержкой в пару секунд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что на счёт TBitMapAnimation , в книженции читал мельком что этот компонент нужен для того чтобы анимировать две картинки, не более. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверить сейчас нет возможности, но я бы для начала попробовал поместить оба изображения в родительский контрол TRectangle со свойством ClipChildren=true для обрезки дочерних изображений, выходящих за границы контрола. Одну картинку растянул по Rectangle, а вторую поместил ровно под ним (через Image2.Position.X:=0, Image2.Position.Y:=Rectangle.Height). Она должна быть полностью "обрезана" нижней границей Rectangle. Ну а дальше через FloatAnimation уменьшаем Image2.Position.Y с начального значения до нуля за нужное время с задержкой в пару секунд.

В таком случае надо двигать и image1 по оси Y, иначе будет эффект наложения, а не прокрутки.

В данном варианте легче сделать одно изображение выходящее по середине за нижнюю рамку родительского контрола.

 

Есть вариант так же сделать через TListBox, создав 2 элемента списка с картинками и прокручивать его.

 

 TBitMapAnimation отлично справляется превращая набор картинок в gif изображение. Но там, насколько я помню, нет переходов между картинками.

 

Возможно вы найдете нужным переход среди эффектов ( *TransitionEffect ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько я понял, вы хотите сделать слайдер. Два года назад я писал две статьи о двух способах создания такого слайдера.

Более того, раньше был рабочий пример, наглядно демонстрирующий это.

 

Посмотрите, эти статьи, я думаю они помогут вам. 

 

Пример реализации слайдера MetropolisUIFlipViewDemo.zip

Этот пример убрали из поставки среды начиная с XE6

Изменено пользователем Brovin Yaroslav
Добавлен пример

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читал ваши статьи, а вот время определенное задавать по таймеру я так понял придется? WIN8 со своими анимированными плитками думаю не по таймеру работает :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как вы полагаете Windows 8 перелистывает изображения?

 

Просто через 2 сек. смена картинки видом скролл вверх)

Ну и это не говорит о том, что это таймер? 

 

Или я не очень понял, о чем вы.

Изменено пользователем Brovin Yaroslav

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.12.2014 в 12:06, Brovin Yaroslav сказал:

На сколько я понял, вы хотите сделать слайдер. Два года назад я писал две статьи о двух способах создания такого слайдера.

статьи уже отсутствуют

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу