方法很多,
就是一个对表皮重绘问题。
可以对TCanvas进行重绘,
也可以使用两个TBitmap,两个TBitmap只有细微的差别,通过对在这两个bitmap之间转换形成动的效果给我100的话,可以给你写代码。。

解决方案 »

  1.   

    to  flyingice(ygxdha) :
      你写代码呀,不过像QQ的好友列表一样,我是通过一个ImageList
    列出头像的, 通过了我一定加分的,一定!
      

  2.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Buttons, ExtCtrls, ImgList, StdCtrls, EsimageFM, ComCtrls,
      Grids, Outline, DirOutln, ShellCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        ImageList1: TImageList;
        Timer1: TTimer;
        procedure FormCreate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
        width,height:integer;
      public
        { Public declarations }
      end;
    var
    Form1: TForm1;
    b:boolean;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin
       width:=10;
       height:=5;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var bit:Tbitmap;
    begin
       bit:=Tbitmap.Create;
       imagelist1.GetBitmap(0,bit);
       image1.Canvas.Rectangle  (width,height,width+bit.Width,height+bit.Height);
       if(width=10)  then
       begin
       width:=20;
       height:=0;
       end
       else
       begin
       width:=10;
       height:=5;
       end;
       image1.Canvas.Draw(width,height,bit);end;end.基本上就是这样,qq一公有左上,中,右上三个轨迹,你把我的的加一点就可以了。。