Поиск сообщества
Показаны результаты для тегов 'TFloatAnimation'.
Найдено: 12 результатов
-
В проекте несколько форм: есть главная (меню) + ИСТОРИЯ (достаточно тяжелая форма) + другие Задача: по нажатию в МЕНЮ на кнопку, начинается создание ИСТОРИИ и в это время проигрывается FloatAnimation для вращения индикатора (это круг с изображением). нужно по завершению создания формы прекратить анимацию и показать форму Как делаю: на главной форме есть F: TForm; при создании формы: F := nil; при нажатии на кнопку: 1) стартует анимация 2) F := TF_History.Create(nil); в процессе проверяю создание формы (если создалась, то стоп) procedure TF_Main.FloatAnimation1Process(Sender: TObject); begin if Assigned(F) then FloatAnimation1.Stop; end; в стопе показываю форму procedure TF_Main.FloatAnimation1Finish(Sender: TObject); begin F.Show; end; Ошибка: приложение вылетает с ошибкой "stack overflow"! P.S. Не совсем понимаю где копать, да и если у кого есть решение получше, буду только рад!)
-
Друзья, столкнулся с проблемой, описанной в посте Хочу предложить свое решение (может кому пригодится). Чтобы центр масштабирования был именно в центре объекта (в моем случае это TImage), необходимо после масштабирования установить свойство Align = TAlignLayout.Center, причем до этого нужно установить его в TAlignLayout.None ! Примерно вот так: Image1.Scale.X:= 1.3; Image1.Scale.Y:= 1.3; Image1.Align:= TAlignLayout.None; Image1.Align:= TAlignLayout.Center; В этом случае будет эффект увеличения объекта из центра. Если убрать строчку "Image1.Align:= TAlignLayout.None;" - увеличение будет из левого верхнего угла. На мой взгляд некорректное поведение платформы. Возможно в будущих релизах это поправят. Embarcadero® Delphi 10.1 Berlin Update 2 Version 24.0.25048.9432
-
Здравствуйте! Как можно реализовать простой эффект плавного исчезновения текста (TLabel) с последующим его плавным появлением без глюков? Пример: Кидаю на форму Label Создаю FloatAnimation для свойства Opacity У FloatAnimation делаю StartValue = 1, StopValue = 0 Кидаю на форму кнопку и в OnClick пишу: FloatAnimation1.Start; Результат: При нажатии кнопки текст плавно исчезает и по завершению анимации текста не видно. У FloatAnimation делаю AutoReverse = true; Результат: При нажатии кнопки текст плавно исчезает, а затем плавно появляется. По завершению анимации текст виден. Но при повторном нажатии всё начинает глючить. Вопрос: как исправить?
- 7 ответов
-
- TFloatAnimation
- StartValue
-
(и ещё 1 )
C тегом:
-
Всем добрый день. Как правильно переопределить родителя для аниматора и тем самым использовать один аниматор для нескольких объектов? Пытаюсь реализовать следующий принцип: на форме несколько прямоугольников и один аниматор. При клике по конкретному прямоугольнику он начинает менять координату. Вот чаcть кода: procedure TForm2.MoveRect(Rect: TRectangle); begin //задаем родителя для аниматора Rect.AddObject(AniMoveRect); //Анимируем координату Y прямоугольника AniMoveRect.PropertyName:='Position.Y'; AniMoveRect.Inverse:=False; AniMoveRect.StopValue:=0; AniMoveRect.Start; end; procedure TForm2.RectangleClick(Sender: TObject); begin MoveRect(Sender as TRectangle); end; В итоге анимируется только один прямоугольник - тот, на который кликнули в первый раз. Не могу понять, в чем проблема. Данную тему читал, но в ней, насколько я понял, речь идет об одновременном использовании аниматора для двух объектов. AniRects.zip
-
Доброго времени суток. Требовалось в мой проект добавить немного анимации чтобы пользователи не скучали. По такому случаю решил использовать TFloatAnimation FireMonkey т.к. все говорили что это просто и очень красиво получается. Но возникла проблема с количеством кадров в секунду. Приведу конкретный пример. Нужно на OnMouseEnter чтобы кнопка увеличивалась по высоте в 2 раза (с 25 до 50). Так вот, если на свойство Height повесить TFloatAnimation то за 0,5 секунды картинка обновится на компе Celeron 2,2GHz 2Гб ОЗУ всего 2-3 раза на компе Intel i3 2,53Ghz 4 Гб ОЗУ быстрее где-то раза в 3, но все равно не так плавно как хотелось бы. Но если я по-старинке напишу такой код на OnMouseEnter while but.Height < 50 do begin but.Height := but.Height + 1; Application.ProcessMessages; sleep(5); end; И аналогичное на OnMouseLeave то даже на первом менее мощном компьютере все очень быстро и красиво отрабатывает. Просто супер как отрабатывает. Это нормально для FireMonkey? Неужели все программируют под хорошие, относительно мощные компьютеры, а на старом железе нормальную анимацию на FireMonkey не написать? Все видео что я видел в интернете про анимацию в FireMonkey отличное, анимация правда хорошая. Это меня удивляет. Нигде не нашел информацию о том на какою дельту изменяется свойство объекта в TFloatAnimation и как определяется задержка между кадрами. Может при установке RAD? Может кто-то сталкивался и такой проблемой и решил ее? Заранее благодарен.
-
Добрый день! Хочу заанимировать Lable таким образом, чтобы параметр Scale.X линейно увеличивался. Но при этом необходимо, чтобы центр компонента оставался на своем месте. А параметр Scale.X за начало отсчета принимает верхний левый угол лейбла. Есть ли возможность изменить центр масштабирования компонента? Я данную задачу уже решил путем добавления анимации смещения влево, но этот способ мне кажется топорным и неоптимальным.
-
Редактирую стиль, добавляю к нему компонент TImage и для свойства RotateAngle создаю FloatAnimation (параметры анимации на скрине). Но при запуске никакой анимации нет. Почему? И как все же добиться работоспособности анимации для элемента стиля?
-
Start Как запустить анимацию с кнопки для другого компонента?
Egorius опубликовал вопрос в Запуск анимации вручную
Как запустить анимацию с кнопки для другого компонента? К примеру с Button кликом запустить анимация для вызова например анимированного объекта Panel? -
TFloatAnimation использует ProcessMessages Это чревато возникновением всяких событий, и даже закрытию формы во время анимации, что приводит к AV очень хочется иметь Repaint без ProcessMessages. Это возможно?
-
В системе iOS есть несколько вариантов анимации выдвижных панелей, и вот один из них это когда панель выходит снизу экрана, как это можно сделать?