Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
本文实例讲述了Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法。分享给大家供大家参考。具体实现方法如下:
const WM_MouseEnter = $B013; WM_MouseLeave = $B014; type TfrmMain = class(TForm) . . Timer1: TTimer; procedure Timer1Timer(Sender: TObject); protected procedure WMMouseEnter(var Msg: TMessage); message WM_MouseEnter; end; implementation {$R *.dfm} procedure TfrmMain.WMMouseEnter(var Msg: TMessage); begin if(Top<0) then begin Top := 0; //为保证下拉窗体后呈现在最前面 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE); //将窗体推到最前 SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE); //然后取消窗体最前 end; Timer1.Enabled := True; end; //依赖定时器定时检查鼠标是否还在窗体范围内, //这样此能避免因为快速移动鼠标而丢失MOUSELEAVE事件 procedure TfrmMain.Timer1Timer(Sender: TObject); var rc:TRECT; pt:TPOINT; begin GetWindowRect(self.Handle,rc); //取窗体的矩形区域 GetCursorPos(pt); //取得当前鼠标所在位置 if(not PtInRect(rc,pt)) then //如果鼠标不在窗体范围内 begin if(Top = 0) then //如果目前窗体正吸附在屏幕上沿,则上移隐藏窗体 begin Top := 0-Height+2; end; Timer1.Enabled := False; //窗体隐藏后定时器关闭 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE); //将窗体推到最前 end; end;
希望本文所述对大家的Delphi程序设计有所帮助。
相关推荐
-
Delphi XE5 为Android应用制作签名的方法(图文)
要发布android应用,必须做签名的.看一下具体的操作步骤: 1.进入Project-Options: 2.打开Options窗口,选择Provisioning,在这里,可以为目标平台选择签名文件,也可生成新的签名文件. 2.1 选择目标平台,可以为dubug或release设置签名,默认情况下,debug签名文件是存在的,可不用设置,这也是我们建立一个新的Android项目,就可以不用签名就能在模拟器上跑的原因,真正发布时,是必须做签名的. 2.2,为发布做一个新的签名,选择Target为R
-
Delphi 用DLL实现插件的简单实例
Delphi 用DLL实现插件的简单实例 这是DLL的代码 实现代码: library MyDll; uses SysUtils, Dialogs, Classes; procedure ShowInfo(info:PChar);stdcall; begin ShowMessage('您选择了['+info+']'); end; function GetCaption:Pchar; begin Result := '中国'; end; exports ShowInfo, GetCaption;
-
Delphi 中内存映射对于大文件的使用
Delphi 中内存映射对于大文件的使用 平时很少使用大文件的内存映射,碰巧遇到了这样的要求,所以把过程记录下来,当给各位一个引子吧,因为应用不算复杂,可能有考虑不到的地方,欢迎交流. 对于一些小文件,用普通的文件流就可以很好的解决,可是对于超大文件,比如2G或者更多,文件流就不行了,所以要使用API的内存映射的相关方法,即使是内存映射,也不能一次映射全部文件的大小,所以必须采取分块映射,每次处理一小部分. 先来看几个函数 CreateFile :打开文件 GetFileSize : 获取文件尺
-
Delphi提取PDF文本实例
生成PDF的控件很多,但解析的不是太多,pdf Toolkit可以,但测试的第一个复杂的pdf就报告错误,并且汉字乱码,可能使用的版本或使用方法不对. 想起之前使用java调用的Apache名下的pdfBox库很好用,于是就用下载了pdfBox,使用Delphi来调用pdfBox解析pdf文本. 环境要求:java运行环境 pdfBox应用包:pdfbox-app-2.0.6.jar 这里使用了DOS命令行来解析,然后调用解析结果. 首先是执行DOS命令: procedure CheckResu
-
ListView 百分比进度条(delphi版)
在看代码之前先给大家附上效果图: 废话不多说了,直接给大家贴代码了. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ImgList; type TForm1 = class(TForm) btn1: TButton; lv1: TListView; trckbr1: TTrackBa
-
Delphi 根据字符串找到函数并执行的实例
Delphi 根据字符串找到函数并执行的实例 关键字:MethodAddress:取得方法的地址,这个方法需要是published的. 实例代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TShowInfo = procedure(info:string) of object; //声
-
Delphi实现截屏存盘的方法
本文实例讲述了Delphi实现截屏存盘的方法.分享给大家供大家参考.具体分析如下: 该实例可实现截取屏幕,并保存为JPEG文件格式的功能. procedure TForm1.ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer); var RectWidth,RectHeight:integer; SourceDC,DestDC,Bhandle:integer; Bitmap:TBitmap; MyJpeg: TJpegImage; Stream
-
Delphi 实现软件自动升级的功能
Delphi 实现软件自动升级的功能 原理简单,在FTP上维护一个Update.ini文件,里面记录着要更新文件的版本号,本地也有一个Update.ini文件,每次启动更新程序时,先从FTP上下载Update.ini文件到本地名字为Update_new.ini,然后比较这两个文件,如果新的版本号大于旧的,或者新的文件在就ini中没有,这些就表示要更新的文件,然后逐一下载. 本程序名字为AutoUpdate,你生成这个exe,然后和主程序一起打包,创建桌面快捷方式时,指向AutoUpdate,而不
-
Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
本文实例讲述了Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法.分享给大家供大家参考.具体实现方法如下: const WM_MouseEnter = $B013; WM_MouseLeave = $B014; type TfrmMain = class(TForm) . . Timer1: TTimer; procedure Timer1Timer(Sender: TObject); protected procedure WMMouseEnter(var Msg: TMessage)
-
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
本文实例讲述了jQuery实现鼠标滑过商品小图片上显示对应大图片功能.分享给大家供大家参考,具体如下: 1 . 效果截图 2 . 代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>www.jb51.net jQuery图片变换</title> </head> <style type="text/css"
-
JQuery实现鼠标滑过显示导航下拉列表
当网站导航栏项目很多的时候,我们往往是将同一级目录下的栏目先隐藏起来.当用户的鼠标滑过时则显示出来.这就是用javascript实现的一个导航栏下拉列表.小编一步步给大家讲解.值得注意的是我们使用的是Javascript的一个框架Jquery来实现的.所以,你在使用的时候必须要下载Jquery. 先建立HTML代码 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="
-
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
先給大家看看效果: 效果介紹: 鼠标滑过进度条改变进度值.兼容性: 可完美兼容IE6,IE7,IE8,Chrome,Firefox代码: 复制代码 代码如下: <script style="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script> <style type=
-
Delphi 在窗体上创建自己光标的实例
Delphi 在窗体上创建自己光标的实例 我们知道在文本框等可以接收输入的组件中,我们可以看到闪烁的光标,并可以输入文字,如果我们在,比如窗体上时,因为不支持输入,也无法显示闪烁的光标,那我们 有办法做自己的输入吗?当然可以,下面我们演示在Form上来输入文字. 用到的API函数如下 GetTextMetrics:获取程序当前的字体信息,存放到TEXTMETRIC结构中 CreateCaret:为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口.插入标记的形状.可以是线.块
-
JavaScript实现鼠标滑过处生成气泡的方法
本文实例讲述了JavaScript实现鼠标滑过处生成气泡的方法.分享给大家供大家参考.具体实现方法如下: <HTML> <HEAD> <title>鼠标周围在网页上生成气泡</title> </HEAD> <BODY bgColor=#000000 scroll=no onload=zyva()> <div id=aqua style="position:absolute;left=0;top=0;">
-
js实现鼠标滑过文字链接色彩变化的效果
本文实例讲述了js实现鼠标滑过文字链接色彩变化效果的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g
-
JS实现鼠标滑过折叠与展开菜单效果代码
本文实例讲述了JS实现鼠标滑过折叠与展开菜单效果代码.分享给大家供大家参考.具体如下: 这是一款展开菜单特效,鼠标移上的时候自动展开,移走后自动折叠隐藏起来,运用了JS技术,并结合了CSS共同实现的效果.本折叠菜单类似QQ可折叠的好友列表一样,不少人喜欢这种菜单. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-hover-show-hidden-menu-style-codes/ 具体代码如下: <!DOCTYPE HTML PUBLIC
-
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
本文实例讲述了JS+CSS实现鼠标滑过时动态翻滚的导航条效果.分享给大家供大家参考.具体如下: 这是一款鼠标悬停时动态翻滚的导航条,注意这里用了两个背景图,请等待网页加载完成或多刷新几次,这个是使用JavaScript实现的,不过代码好像是从jQuery里摘出来的,有点像. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-mouse-over-nav-scroll-style-codes/ 具体代码如下: <!DOCTYPE htm
-
javascript鼠标滑过显示二级菜单特效
本文实例为大家分享了javascript鼠标滑过显示二级菜单效果,供大家参考,具体内容如下 1. 关键代码:使用 switch 或 if 判断语句,改变对应的二级菜单显示方式为 block 或 none function selectTabMenu(i){ switch(i){ case 71: document.getElementById("TabMenuCon71").style.display="block"; document.getElementById
随机推荐
- vue语法之拼接字符串的示例代码
- Vuex2.0+Vue2.0构建备忘录应用实践
- asp.net UrlReWriter使用经验小结
- ASP.NET图片处理三类经典问题
- php str_replace的替换漏洞
- python操作xml文件示例
- MySQL常用时间函数详解(推荐)
- Bootstrap每天必学之弹出框(Popover)插件
- 基础的Linux Shell技巧小结
- Javascript实现CheckBox的全选与取消全选的代码
- 在线编辑器的实现原理(兼容IE和FireFox)
- 特想搞点新的创意出来-立体方块
- jQuery中:file选择器用法实例
- js实现时间轴自动排列效果
- Java8深入学习系列(二)函数式编程
- C++如何实现简单的计时器详解
- android getActivity.findViewById获取ListView 返回NULL的方法
- 微信公众平台开发实战Java版之微信获取用户基本信息
- js判断价格,必须为数字且不能为负数的实现方法
- Go语言学习技巧之如何合理使用Pool