По поводу двух тем, да, я как раз в тот момент оказался на форуме, так что успел удалить дубликат. Как уже написал Ярослав, ночью, поправили всё, но появилась необходимость обновить движок форума до последней лицензионной версии (а лицензия, на данный момент, стоит примерно 200$ = 14 000 руб., сами понимаете, сумма не маленькая...).
Спасибо за оперативное сообщение о проблемах .
Все применения эффектов кэшируются, так как применение эффекта очень ресурсоемкая задача. То есть под конечное изображение выделяется дополнительный буфер, содержащий результирующее изображение с эффектом. Кэш обновляется либо в ручную, либо автоматически в нескольких случаях. При скроллировании, видимо эффект не обновляется. Это можно сделать в OnViewPortPositionChanged в ручную.
var
EffectContainer: IEffectContainer;
begin
if Supports(Button1, IEffectContainer, EffectContainer) then
EffectContainer.NeedUpdateEffects;
Но повторюсь, в этом случае у вас заметно замедлиться скорость прокрутки. Лучше использовать для тени прозрачную png картинку, подложенную в стиль итема.
Можно сделать так:
Делаем поворот TTabControl на от 0 до 90 градусов, чтобы он повернулся к пользователю ребром.
По окончании первой анимации меняем активную вкладку в TTabControl.
Делаем поворот TTabControl еще на 90 градусов от 270 до 360. В итоге TTabControl поворачивается к нам уже новой вкладкой.
Видео эффекта в действии:
Проект: TTabControl_3DRotationDemo.zip
Самый простой вариант использования эффекта прокручивания основывается на использовании компонента TTabControl, который реализует переключение табов (вкладок) с анимацией. Для этого достаточно:
Поместить TTabControl на форму и растянуть его на всю область TTabControl.Align = alClient.
Создать вкладки. Одну вкладку на один логический экран (слайд, представление и тд). На каждую вкладку помещаете любой контент. В вашем случае TListBox.
Вызвать в нужный момент метод переключения вкладок с анимацией:
TTabControl.SetActiveTabWithTransition(const ATab: TTabItem; ATransition: TTabTransition; const ADirection: TTabTransitionDirection = TTabTransitionDirection.tdNormal)
Где,
ATab: TTabItem - Вкладка, которую нужно отобразить
ATransition: TTabTransition - Отобразить вкладку мгновенно или с эффектом сдвига (В вашем случае нужно второе TTabTransition.ttSlide)
ADirection: TTabTransitionDirection - направление эффекта сдвига: Слева на право (TTabTransitionDirection.tdNormal) или с права налево (TTabTransitionDirection.tdReversed).
Второй способ
Аналогично создаем Таб контрол с вкладками, но для переключения вкладок используем стандартное действие TChangeTabAction, которое выполняет те же действия, что и SetActiveTabWithTransition. Действия доступны в редакторе TActionList "New Standart Action..."