У меня вопрос об объекте FMX TRectangle в Delphi.
Я пытаюсь анимировать пунктирную границу TRectangle, но не могу этого сделать.
Я написал этот код внутри события OnCreate формы:
Rectangle1.Stroke.Kind := TBrushKind.Solid;
Rectangle1.Stroke.Dash := TStrokeDash.Dash;
Rectangle1.Stroke.Color := TAlphaColors.Red;
Rectangle1.Stroke.Thickness := 2;
// Configura l'animazione del bordo
FloatAnimation1.Parent := Rectangle1;
FloatAnimation1.PropertyName := 'StrokeDashOffset';
FloatAnimation1.StartValue := 0;
FloatAnimation1.StopValue := 20;
FloatAnimation1.Duration := 1;
FloatAnimation1.Loop := True;
FloatAnimation1.AnimationType := TAnimationType.InOut;
FloatAnimation1.Interpolation := TInterpolationType.Linear;
FloatAnimation1.Start;
В форме есть объекты TRectangleObject и TFloatAnimation, которые должны анимировать прямоугольник, но когда я запускаю программу, я не вижу анимации.
Я впервые пишу приложение Delphi FMX, поскольку обычно я разрабатываю его с помощью VCL.
Может кто-нибудь сказать мне, что не так с этим фрагментом кода? Я получаю красную рамку, но нет анимации.





Я думаю, что значение FloatAnimation1.PropertyName неверно.
Поставьте TFloatAnimation в форму и просмотрите возможности PropertyName недвижимости.
Если вы попытаетесь изменить это свойство (например, поставить Stroke.Thickness), анимация запустится нормально.
Я попробовал этот код:
procedure TForm3.FormShow(Sender: TObject);
begin
FloatAnimation1.Parent := Rectangle1;
FloatAnimation1.PropertyName := 'Stroke.Thickness';
FloatAnimation1.StartValue := 0;
FloatAnimation1.StopValue := 5;
FloatAnimation1.Duration := 1;
FloatAnimation1.Loop := True;
FloatAnimation1.AnimationType := TAnimationType.InOut;
FloatAnimation1.Interpolation := TInterpolationType.Linear;
FloatAnimation1.Start;
end;
Вот результат:
FloatAnimation1.PropertyNameиз'StrokeDashOffset'кажется неправильным. Где вы об этом прочитали в сочетании сFireMonkey?