如何使image控件上的图片产生震动的效果(50分)

  • 主题发起人 主题发起人 月满C楼
  • 开始时间 开始时间

月满C楼

Unregistered / Unconfirmed
GUEST, unregistred user!
如题:
效果如QQ上联系人头像在有消息来时的震动效果
Image1.Top:=0;
sleep(200);
Image1.Top:=18;
sleep(200);
Image1.Top:=0;
sleep(200);
Image1.Top:=18;
sleep(200);
Image1.Top:=0;
sleep(200);
Image1.Top:=18;
sleep(200);
Image1.Top:=9;
这样看不到效果呢
 
这样当然看不出效果了...
sleep后面都加句
Application.ProcessMessages;
试试.......
 
//用Timer控件比较好。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
Button1: TButton;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
iCount,x1,x2,y1,y2:Integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if iCount < 20 then
begin
x1 := x1 xor x2;
x2 := x1 xor x2;
x1 := x1 xor x2;
y1 := y1 xor y2;
y2 := y1 xor y2;
y1 := y1 xor y2;
Image1.Left := x1;
Image1.Top := y1;
inc(iCount);
end else
begin
Timer1.Enabled := FALSE;
iCount := 0;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
x1 := 6;
y1 := 6;
x2 := 8;
y2 := 8;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := TRUE;
end;

end.
 
多人接受答案了。
 
后退
顶部