QQ窗体的缩入伸出功能之delphi实现

      看见QQ窗体的自动缩入与伸出功能感觉很好,其实很多 服务控制台或我们自已开发的程序需要长期打开时,这种功能的确是一种很好的选择。其实现也并不难, 以下为实现代码:

     准备:

         我们需要在窗体上放置两个Timer控件,一个Timer用于实现对窗体缩入伸出尺寸的限制,一个Timer用于感知鼠标的移动。

代码:

//自定义函数GetFormNameAt,获得鼠标针指下窗体的Name
function GetFormNameAt ( X, Y : integer ) : string;
var
   P:TPoint;
   W:TWinControl;
begin
   P.X := X;
   P.Y := Y;
   W := FindVCLWindow(P); //得到鼠标指针下的VCL可视组件
   if ( nil <> W ) then
   begin
      while w.Parent<>nil do //当W的上级Parent不为空时就继续往上找
        w:=w.Parent;
      Result := W.Name;//最后返回窗体的名称Name
   end
   else
   begin
    Result := '';
   end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var
   winPos:TPoint;
begin
  if (form1.Top<=3) or (form1.Left>=screen.Width-form1.Width-3) then //判斷
  begin
     GetCursorPos(winpos);  //得到当前鼠标指针的在屏幕上的坐标

     //当鼠标指针下的窗体的Name等于form1.name时
     if form1.name=GetFormNameAt(winpos.X,winpos.Y) then
     {在此我们可以为form1取一个特别的名称,以防有别的窗体名称与它相同}
     begin
      form1.Timer2.Enabled:=false; //停用Timer2
      form1.Top:=0;  //form1的Top与屏幕对齐
     end
     else
      form1.Timer2.Enabled:=true; //开启Timer2
  end;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 if form1.Top<=20 then
      form1.Top:=-(form1.Height-10);//将form1向上移,在屏幕上方露出10像素

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Top :
= 2;  //初始时窗口的位置,可不要此句代码

end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值