如何使用TRectAnimation复选框

时间:2013-05-09 20:11:54

标签: delphi user-interface firemonkey delphi-xe3

我正在尝试修改复选框动画,因为我正在使用自定义样式的复选标记。众所周知,正常复选框默认关联4个TRectAnimations以满足IsMouseOver和IsChecked触发器的所有组合。我试过那些无济于事。

因此,为了理解动画的工作原理,我将动画缩小为仅适用于IsChecked触发器及其反转的动画。在样式设计器中为动画设置了以下非默认设置: -

Duration       := 1
Enabled        := True
PropertyName   := SourceRect

Start          
Bottom         := 0
Left           := 0
Right          := 0
Top            := 0

Stop          
Bottom         := 46
Left           := 0
Right          := 46
Top            := 0

Trigger        := IsChecked=true
TriggerInverse := IsChecked=false

我现在面临以下奇怪之处: -

  • 当我手动操作对象检查器中复选框的IsChecked字段时,复选标记出现并正确消失但是当应用程序运行时,复选标记仍然存在,并且重复点击后不会发生任何活动(事件虽然被解雇了。

  • 如果我尝试手动将TSubIImage的SourceRect字段设置为0,它将永远不会被保存并恢复为之前的值。

  • 动画的“持续时间”字段的行为也是如此。它每次都会恢复到1E-5。

请帮我正确地执行此操作,我只想让标记动画并在复选框的IsChecked字段更改时显示/消失。

编辑1 - 新发现

  • 原来,SourceRect字段重置是由超出范围的值引起的。它不会出错......

  • 持续时间字段具有相同的错误,但有时在设置为0.2时不会重置。

  • 动画从控件继承触发器,但它们仅在最新父布局/面板覆盖的区域中捕获。它们也不会被捕获在对象后面,动画就是孩子了。通过将触发器更改为IsMouseOver并观察样式设计器中的反应来检查它。

0 个答案:

没有答案