类似QQ,MSN的窗口震动效果

时间:2014-04-15 15:27:19
【文件属性】:
文件名称:类似QQ,MSN的窗口震动效果
文件大小:6KB
文件格式:RAR
更新时间:2014-04-15 15:27:19
类似QQ,MSN的窗口震动效果 类似QQ,MSN的窗口震动效果,里面有源代码。 unit ShakeWindow; interface uses Classes, Windows, Forms; const Max_PTCount = 40; type TShakeThread = class(TThread) private FForm: TCustomForm; FXStrength: Integer; FYStrength: Integer; FPTArray: array [0..Max_PTCount - 1] of TPoint; procedure InitPTArray; procedure SetXStrength(const Value: Integer); procedure SetYStrength(const Value: Integer); protected procedure Execute; override; public property Form: TCustomForm read FForm write FForm; property XStrength: Integer read FXStrength write SetXStrength; property YStrength: Integer read FYStrength write SetYStrength; end; procedure Shake(valForm: TCustomForm; valXStrength: Integer = 4; valYStrength: Integer = 4); implementation uses Math; procedure Shake(valForm: TCustomForm; valXStrength: Integer = 4; valYStrength: Integer = 4); begin with TShakeThread.Create(True) do begin Form := valForm; XStrength := valXStrength; YStrength := valYStrength; FreeOnTerminate := True; Resume; end; end; procedure TShakeThread.Execute; var I: Integer; P: TPoint; begin InitPTArray; P := Point(FForm.Left, FForm.Top); for I := Max_PTCount - 1 downto 0 do begin SetWindowPos(FForm.Handle, 0, P.X + FPTArray[I].X, P.Y + FPTArray[I].Y, 0, 0, SWP_NOSIZE or SWP_NOREPOSITION); Sleep(20); end; end; procedure TShakeThread.InitPTArray; var I: Integer; function Sign(): Integer; begin Result := IfThen(RandomRange(0, 36635) mod 2 = 0, -1, 1); end; begin Randomize; for I := Max_PTCount - 1 downto 0 do begin FPTArray[i].X := Sign()*RandomRange(0, 36635) mod FXStrength*i div 10; FPTArray[i].Y := Sign()*RandomRange(0, 36635) mod FYStrength*i div 10; end; end; procedure TShakeThread.SetXStrength(const Value: Integer); begin if Value < 4 then FXStrength := 4 else if Value > 20 then FXStrength := 20 else FXStrength := Value; end; procedure TShakeThread.SetYStrength(const Value: Integer); begin if Value < 4 then FYStrength := 4 else if Value > 20 then FYStrength := 20 else FYStrength := Value; end; end.
【文件预览】:
ShakeWindow
----ShakeWindow.pas(2KB)
----Project1.dof(11KB)
----del.bat(248B)
----Unit1.dfm(496B)
----Project1.cfg(434B)
----Project1.dpr(244B)
----Unit1.pas(491B)
----Project1.res(876B)
----Delphi盒子.url(259B)
----2ccc.com.nfo(753B)

网友评论