方式1:自己调节组件边距(刷新可能会闪烁)或建立自定义扩展组件;方式2:调用以下函数可以实现组件动画:调用格式如:AnimatePanelProcess(Panel1);//执行动画操作的函数  
procedure AnimatePanelProcess(Sender:TObject);
const
  MY_ANIMATEACTION_ARRAY:array[0..4]of integer=(
    AW_HOR_POSITIVE,AW_HOR_NEGATIVE,
    AW_VER_POSITIVE,AW_VER_NEGATIVE,
    AW_CENTER);
begin
  (Sender as TWinControl).Visible := false;
  (Sender as TWinControl).BringToFront;
  AnimateWindow((Sender as TWinControl).Handle, 1000, MY_ANIMATEACTION_ARRAY[Random(5)] );
  (Sender as TWinControl).Visible := true;
  (Sender as TWinControl).Invalidate; 
end;

解决方案 »

  1.   


    方式1:自己调节组件边距(刷新可能会闪烁)或建立自定义扩展组件;方式2:调用以下函数可以实现组件动画:调用格式如:AnimatePanelProcess(Panel1);//执行动画操作的函数  
    procedure AnimatePanelProcess(Sender:TObject);
    const
      MY_ANIMATEACTION_ARRAY:array[0..4]of integer=(
        AW_HOR_POSITIVE,AW_HOR_NEGATIVE,
        AW_VER_POSITIVE,AW_VER_NEGATIVE,
        AW_CENTER);
    begin
      (Sender as TWinControl).Visible := false;
      (Sender as TWinControl).BringToFront;
      AnimateWindow((Sender as TWinControl).Handle, 1000, MY_ANIMATEACTION_ARRAY[Random(5)] );
      (Sender as TWinControl).Visible := true;
      (Sender as TWinControl).Invalidate; 
    end;
      

  2.   

    iplocate好像用的是控件AnimationEffect,使用很简单,只有把控件放在form上再设一下用什么动画效果就行了。web site:www.utilmind.com