Delphi实现窗体缩入功能编程培训.pdfVIP

  • 0
  • 0
  • 约3.02千字
  • 约 4页
  • 2025-10-23 发布于北京
  • 举报

Delphi软件编程培训班第26节

1、介绍:

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

2、说明:

不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于

如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。GetCursorPos()是一个可以获得鼠标指针在

屏幕中的坐标的API函数,利用它与FindVCLWindow()的结合就可以轻易地获得鼠标指针下的VCL可

视组件,但当一个窗体中不只一个VCL可视组件,例如可能还有TPanel、TMemo等等类型时,那么我

们就必须要查找到它们的Parent级,最终得到TForm,那就是指我们的程序窗体。按照这个思路我自

定义了GetFormNameAt()函数,它可获得当前鼠标指针下面的窗体的名称。以下列出程序的主要实现代

码,供大家参考:

//自定义函数GetFormNameAt,获得鼠标针指下窗体的Name

functionGetFormNameAt(X,Y:integer):string;

var

P:TPoint;

W:TWinControl;

begin

P.X:=X;

P.Y:=Y;

W:=FindVCLWindow(P);//得到鼠标指针下的VCL可视组件

if(nilW)then

begin

whilew.Parentnildo//当W的上级Parent不为空时就继续往上找

w:=w.Parent;

Result:=W.Name;//最后返回窗体的名称Name

end

else

begin

Result:=;

end;

end;

Delphi软件编程培训班第26节

一、介绍:

实现QQ表格的缩入扩展功能

2、说明:

不知道大家在使用QQ的时候有没有想到它的缩入支架的功能是如何实现的呢?实现这个效果的关键在

于如何判断当前鼠标指针下面的表格不是我们的程序表格。GetCursorPos()是一个支持鼠标指针在屏

幕中的坐标的API函数,利用它与FindVCLWindow()的结合就很容易就能获得鼠标指针下的VCL可

视组件,但当一个表格中不只有一个VCL可视组件时,可能还有TPanel、TMemo等类型时,那么我

们就必须查找到它们的父级,最终得到TForm,那么就是指我们的程序表单。按照这个思路定

义了GetFormNameAt()函数,就可以得到当前鼠标指针下面的表单的名称。以下首发程序的主要实现

代码,供参考:

//自定义函数GetFormNameAt,获取鼠标指针下表格的Name

functionGetFormNameAt(X,Y:integer):string;var

P:TPoint;W:TWinControl;开始P.X:=X;P.Y:=Y;W:=查找

VCLWindow(P);//得到光标指针下的VCL可视组件if(nilW)

thenbeginwhilew.Parentnildo//当W的上级Parent不为空

时就继续往上找w:w.Parent;Result:=W.Name;//最后返回下面

的名称NameendelsebeginResult:;结尾;结尾;

procedureTForm1.Timer1Timer(Sender:TObject);

var

winPos:TPoint;

begin

GetCursorPos(winpos);//得到当前鼠标指针的在屏幕上的坐标

//当鼠标指针下的窗体的Name等于form

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档