我有一个关于 Delphi 的 FMX `TRectangle 对象的问题。
我正在尝试为
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;
这就是结果: