Wednesday، October 05، 2005

سورس کد یک برنامه نمونه برای لرزاندان پنجره برنامه

حتما در برنامه یاهو دیده اید که با زدن زنگ پنجره برنامه شروع به لرزش می کند. اگر می خواهید اینکار را در دلفی انجام دهید می توانید از سورس کد زیر استفاده نمائید.



procedure WindowShake(wHandle: THandle) ;
const
MAXDELTA = 4;
SHAKETIMES = 500;
var
oRect, wRect :TRect;
deltax : integer;
deltay : integer;
cnt : integer;
dx, dy : integer;
begin
//نگهداری محل اصلی پنجره
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;
//برگرداندن برنامه به محل اصلی
MoveWindow(wHandle, oRect.Left,oRect.Top,
oRect.Right - oRect.Left,oRect.Bottom - oRect.Top,true) ;
end;


برای استفاده می توانید در برنامه اصلی مثلا بر روی رویداد کلیک یک دکمه بصورت زیر بنویسید :


WindowShake(Application.MainForm.Handle) ;