抖动的窗体?

hjkto 2009-10-17 05:43:19
谁能帮改一下代码,达到qq震动窗口的效果?
procedure WindowShake(wHandle: THandle) ;
const
MAXDELTA = 4;
SHAKETIMES = 500;
var
oRect, wRect :TRect;
deltax : integer;
deltay : integer;
cnt : integer;
dx, dy : integer;
begin
//remember original position
GetWindowRect(wHandle,wRect) ;
oRect := wRect;

Randomize;
for cnt := 0 to SHAKETIMES do
begin
deltax := Round(Random(MAXDELTA)) ;
deltay := Round(Random(MAXDELTA)) ;
dx := Round(1 + Random(2)) ;
if dx = 2 then dx := -1;
dy := Round(1 + Random(2)) ;
if dy = 2 then dy := -1;
OffsetRect(wRect,dx * deltax, dy * deltay) ;
MoveWindow(wHandle, wRect.Left,wRect.Top,wRect.Right - wRect.Left,wRect.Bottom - wRect.Top,true) ;
end;
//return to start position
MoveWindow(wHandle, oRect.Left,oRect.Top,oRect.Right - oRect.Left,oRect.Bottom - oRect.Top,true) ;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
WindowShake(Application.MainForm.Handle) ;
end;

感觉这个没有qq震屏的好看。
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjkto 2009-10-19
  • 打赏
  • 举报
回复
up
hjkto 2009-10-18
  • 打赏
  • 举报
回复
自己顶
yhf365 2009-10-18
  • 打赏
  • 举报
回复
以前我也尝试过写抖动效果,可是发现反应很慢,
如果能直接调用directx就会快很多

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧