معلم دلفی

چهارشنبه، مهر ۱۳، ۱۳۸۴

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

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



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) ;