社区
Delphi
帖子详情
焦点问题
xiaoli2200
2003-10-20 11:14:10
我想实现这样一个东东
比如shape控件,我想把鼠标移上去时就变色,移开时恢复,原来我是在MOUSEMOVE中做的,移开时在别的控件写,把它变回来,但有缺陷,因为移到FORM外就不行了,请问有什么好方法,谢谢
...全文
55
7
打赏
收藏
焦点问题
我想实现这样一个东东 比如shape控件,我想把鼠标移上去时就变色,移开时恢复,原来我是在MOUSEMOVE中做的,移开时在别的控件写,把它变回来,但有缺陷,因为移到FORM外就不行了,请问有什么好方法,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhp97
2003-10-22
打赏
举报
回复
有一个苯办法,你取得该应用程序窗口在屏幕上的坐标,随时与鼠标即时坐标做比较,如果鼠标在窗口之外就恢复颜色啊!!!取屏幕坐标好象有现成函数可用,不必自己写。
zzh54zzh
2003-10-22
打赏
举报
回复
这个方法可能有些笨,不过我测试过了,符合你的要求:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
TShape1 =class (TShape)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;
var
Form1: TForm1;
Shape1: TShape1;
implementation
{$R *.dfm}
{ TShape1 }
procedure TShape1.CMMouseEnter(var Message: TMessage);
begin
Form1.Timer1.Enabled := True;
Form1.Timer2.Enabled := False;
end;
procedure TShape1.CMMouseLeave(var Message: TMessage);
begin
Form1.Timer1.Enabled := False;
Form1.Timer2.Enabled := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1 := TShape1.Create(Form1);
Shape1.Parent := Form1;
Shape1.Align := alClient;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shape1.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Shape1.Pen.Style <> psSolid then
Shape1.Pen.Style := psSolid;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Shape1.Pen.Style <> psClear then
Shape1.Pen.Style := psClear;
end;
end.
zzh54zzh
2003-10-22
打赏
举报
回复
先看看这个
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
TShape1 =class (TShape)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;
var
Form1: TForm1;
Shape1: TShape1;
implementation
{$R *.dfm}
{ TShape1 }
procedure TShape1.CMMouseEnter(var Message: TMessage);
begin
Form1.Caption := 'Y';
end;
procedure TShape1.CMMouseLeave(var Message: TMessage);
begin
Form1.Caption := 'N';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1 := TShape1.Create(Form1);
Shape1.Parent := Form1;
Shape1.Align := alClient;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shape1.Free;
end;
end.
gx
2003-10-21
打赏
举报
回复
gz
xiaoli2200
2003-10-21
打赏
举报
回复
意思是这样,怎么样得到光标在某个控件上,或者怎么样得到光标已经离开这个控件
Alanwn
2003-10-21
打赏
举报
回复
用图片试试好不
herofy
2003-10-21
打赏
举报
回复
我只知道用消息
Win7系统的电脑变成wifi网
#### 四、常见
问题
及解决方案 - **无法看到虚拟WiFi网卡**:请检查无线网卡驱动是否已经更新,或者尝试重新安装无线网卡驱动。 - **其他设备无法连接**:请确保WiFi热点的名称和密码正确无误,并检查防火墙设置是否...
TiDB数据库热点
问题
诊断与处理
TiDB数据库热点
问题
诊断与处理为什么要解决热点
问题
热点
问题
产生的原因写热点产生的原因读热点产生的原因定位热点
问题
TiDB Dashboard流量可视化TiDB Dashboard SQL语句执行情况热点
问题
处理写热点打散的几种方法#1: ...
(计算机毕设选题推荐)基于pyecharts对知乎热点
问题
的数据分析与研究
知乎作为国内知名的知识分享社区,其热点
问题
不仅反映了用户关注的
焦点
,也蕴含了丰富的社会、经济、文化等信息。本文首先爬取了知乎平台上的热点
问题
数据,包括
问题
标题、回答数量、关注人数、点赞数等关键指标。...
解决高并发项目下的热点
问题
1.什么是热点 点表示我们在系统的业务路径上有一个地方存在性能的瓶颈,比如数据库,件系统,网络,甚至于内存等,这个点一般有io,锁等
问题
构成...其次我们需要弄清楚我们的热点
问题
是属于读热点
问题
还是写热点
问题
,
Scrollview嵌套Listview 或者gridview
焦点
问题
1,有的时候我们需要通过scrollview嵌套listview 或者gridview 当然 scrollview 上还有其他的UI控件,(button textview imageview 等 如果没有这些 东西我们也不用 去嵌套这些东西了 )主要说的是
焦点
问题
什么意思...
Delphi
5,930
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章