社区
Delphi
帖子详情
焦点问题
xiaoli2200
2003-10-20 11:14:10
我想实现这样一个东东
比如shape控件,我想把鼠标移上去时就变色,移开时恢复,原来我是在MOUSEMOVE中做的,移开时在别的控件写,把它变回来,但有缺陷,因为移到FORM外就不行了,请问有什么好方法,谢谢
...全文
37
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
打赏
举报
回复
我只知道用消息
人工智能数理基础系列公开课——『看得见 』的数学
人工智能数学基础系列公开课通过人工智能热点
问题
开始,引出其中蕴涵的数学原理,然后构建解决实际
问题
的数学模型和方法,兼具趣味性与实用性,引导大家主动运用数学工具思考与解决实践中遇到的
问题
,为人工智能学习...
TiDB数据库热点
问题
诊断与处理
TiDB数据库热点
问题
诊断与处理为什么要解决热点
问题
热点
问题
产生的原因写热点产生的原因读热点产生的原因定位热点
问题
TiDB Dashboard流量可视化TiDB Dashboard SQL语句执行情况热点
问题
处理写热点打散的几种方法#1: ...
Scrollview嵌套Listview 或者gridview
焦点
问题
1,有的时候我们需要通过scrollview嵌套listview 或者gridview 当然 scrollview 上还有其他的UI控件,(button textview imageview 等 如果没有这些 东西我们也不用 去嵌套这些东西了 )主要说的是
焦点
问题
什么意思...
解决高并发项目下的热点
问题
1.什么是热点 点表示我们在系统的业务路径上有一个地方存在性能的瓶颈,比如数据库,件系统,网络,甚至于内存等,这个点一般有io,锁等
问题
构成...其次我们需要弄清楚我们的热点
问题
是属于读热点
问题
还是写热点
问题
,
计算机网络的前沿技术和热点
问题
,中国信息技术十大前沿热点
问题
原标题:中国信息技术十大前沿热点
问题
1、自然语言理解自然语言理解是计算机迈进智能的必经之路,作为新一代人工智能的关键共性技术,自然语言理解研究对提升智能信息产业发展、保障国家信息内容安全具有重要意义。...
Delphi
5,390
社区成员
262,735
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章