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

DELPHI最简洁的伸缩窗口 最简洁的伸缩窗口 DELPHI源代码 很有借鉴意义 立即下载

不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。GetCursorPos()是一个可以获得鼠标指针在屏幕中的坐标的API函数,利用它与FindVCLWindow()的结合就可以轻易地获得鼠标指针下的VCL可视组件,但当一个窗体中不只一个VCL可视组件,例如可能还有TPanel、TMemo等等类型时,那么我们就必须要查找到它们的Parent级,最终得到TForm,那就是指我们的程序窗体。按照这个思路我自定义了GetFormNameAt()函数,它可获得当前鼠标指针下面的窗体的名称。以下列出程序的主要实现代码,供大家参考:(由書生整理,Win2000+Delphi測試通過)

//自定义函数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;

Delphi中报表自动伸缩组件的设计与实现 (2002年) 针对Delphi报表工具QuickReport中表格线的不可自适应问题,设计了Delphi报表中具有自动伸缩功能的可视化组件Tnewcom,并给出基于Delphi 5.0下的具体实现方法. 立即下载

相关推荐

Delphi写的QQ模拟聊天程序(多线程--含服务器和客户端-)

网上找的一个不错的Delphi写的模拟QQ聊天程序,含服务端和客户端,采用了多线程技术,很适合学习网络通信和多线程的人学习研究之用。

折叠面板组和折叠面板块怎么设置?

qq_46582421的博客 336

delphi实现类似QQ窗体伸缩效果

delphi实现类似QQ窗体伸缩效果

devexpress设置皮肤、字体以及折叠菜单、伸缩Panel的实现

1、为了体现系统的个性化,越来越多的系统增加了换肤功能。这里例举一个devexpress实现换肤的案例,效果图对比: 第二张图片中更换了皮肤与字体。 2、皮肤数据源绑定代码: //循环添加皮肤名称 foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.Sk...

weixin_34210740的博客 1473

qq 实现伸缩功能 不错的东西 delphi

qq 实现伸缩功能 不错的东西 delphi

Delphi伸缩窗口 可展开.rar

Delphi伸缩窗口 可将窗体全部展开显示,可折叠、收起的窗口特效,平时隐藏在屏幕的顶部,就像QQ的窗口一样,鼠标放上后会自动下拉显示,每隔一段会显示一次窗口。

实现QQ窗体的缩入伸出功能(文章来自csdn) 选择自 lovecdw 的 Blog

 不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。GetCursorPos()是一个可以获得鼠标指针在屏幕中的坐标的API函数,利用它与FindVCLWindow()的结合就可以轻易地获得鼠标指针下的VCL可视组件,但当一个窗体中不只一个VCL可视组件,例如可能还有TPanel、TMemo等等类型时,那

深圳小羅的空間 806

仿QQ自动伸缩的窗口,用Delphi写的..rar

仿QQ自动伸缩的窗口,用Delphi写的..rar

实现QQ窗体的缩入伸出功能[转载]

-----------------------------------------本文我很喜欢,因此想转载,勿怪!-----------------------------不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。GetCursorPos()是一个可以获得鼠标指针在屏幕中的坐标的API函数,利用它与F

besttcx的专栏 658

【科研绘图】【数据拟合曲线】:附Origin详细画图流程

拟合曲线图

weixin_50236590的博客 4万+

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1588

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

      看见QQ窗体的自动缩入与伸出功能感觉很好,其实很多 服务控制台或我们自已开发的程序需要长期打开时,这种功能的确是一种很好的选择。其实现也并不难, 以下为实现代码:     准备:         我们需要在窗体上放置两个Timer控件,一个Timer用于实现对窗体缩入伸出尺寸的限制,一个Timer用于感知鼠标的移动。代码://自定义函数GetFormNameAt,获得鼠

qqp_528的专栏 1071

winget安装提示:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd

当我们使用Winget包管理器安装应用,提示错误:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd 该怎么处理呢?请听我娓娓道来。

Linux I Tell U 8139

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

====================================================== 注:重要!程序员如何有效的放松身心!下班后做什么? ====================================================== 刷新评论列表刷新页面返回页首 发表评论 昵称: [登录] [注册] 主页: 邮箱:(仅博主可见) 验证

139

Qt C++:跨平台开发利器

摘要: Qt C++是基于C++的跨平台开发框架,通过元对象系统、信号槽机制及模块化架构实现"一次编写,多端部署"。核心特性包括: 跨平台能力:覆盖桌面(Windows/macOS/Linux)、移动端(iOS/Android)、嵌入式及WebAssembly; 信号与槽:替代传统回调,实现对象间高效通信; UI组件库:200+预制组件支持QSS样式定制; 工具链:Qt Creator集成开发环境提供可视化设计、调试及多平台编译。 广泛应用于工业控制、车载系统、医疗设备及跨平台应用开发,

2202_75382767的博客 1684

电机传动机构的转矩与惯量折算

参考《工业运动控制》

庐州牧 1万+

Delphi实现QQ窗体缩入伸出:GetCursorPos与FindVCLWindow实战

用 GetCursorPos 配合 FindVCLWindow 判断鼠标下方窗体归属,是 Delphi 实现 QQ 面板缩入伸出的关键。本文给出可直接编译的窗体类声明、双定时器分工与动画参数,并附多屏坐标、缩入还原的验证步骤。后续 AI 能力可统一走 TaoToken 通道,官网:https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42610671的博客 4

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+
上一篇: 我的下载速度
下一篇: 昨日颇冷
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值