您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 类似QQ,MSN的窗口震动效果
  所属分类: Delphi
  开发工具:
  文件大小: 6kb
  下载次数: 0
  上传时间: 2011-03-26
  提 供 者: simo****
 详细说明: 类似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; prope rty 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. ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: