CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

控件焦点问题!

楼主feng_zi(二度程序员)2001-09-05 10:20:48 在 Delphi / VCL组件开发及应用 提问

请教大侠,我要实现功能:一个控件得到焦点时,底色变化,失去焦点时,又变回原来的颜色,要实现这样的功能有一个通用的procedure吗?如何写呢? 问题点数:70、回复次数:12Top

1 楼chechy(www.qdocuments.net)回复于 2001-09-05 10:23:45 得分 0

得到焦点,应该是触发CM_ENTER消息。  
  而失去焦点,应该触发CM_EXIT消息。  
  你写两个消息响应函数,就可以了。Top

2 楼enlightenment(破冰超人)回复于 2001-09-05 10:28:18 得分 10

 
  添加:  
   
  procedure   WmSetFocus(const   Message:TMessage);message   WM_SETFOCUS;  
   
  procedure   WmKillFocus(const   Message:TMessage);message   WM_KILLFOCUS;  
   
  处理过程!  
   
  Top

3 楼lluunn007(书生)回复于 2001-09-05 10:42:23 得分 0

agree~~Top

4 楼lliuxxingw(lliuxxingw)回复于 2001-09-05 10:46:33 得分 0

也可对控件的事件进行编程,有onenter和onexitTop

5 楼pathe(睡斛)回复于 2001-09-05 10:50:41 得分 0

const   换成     var   吧!Top

6 楼feng_zi(二度程序员)回复于 2001-09-05 10:55:56 得分 0

to   chechy,enlightenment:  
      可以具体点吗?我不是只对一个控件使用,我是想在一个form中,多个Tedit,TComboBox,当其中某个得到焦点时,颜色变化,失去时又复原.  
      你们所说的,具体如何能做到呢?  
  to   lliuxxingw:  
      那样要每个控件中都写,很多就不好玩了!Top

7 楼enlightenment(破冰超人)回复于 2001-09-05 10:56:09 得分 0

 
  const换成var,笔误!  
   
  Top

8 楼chechy(www.qdocuments.net)回复于 2001-09-05 11:05:30 得分 60

不难的,因为这些控件都有OnEnter和OnExit事件。将这些控件的OnEnter事件都连接到同一个OnEnter函数,将OnExit事件也连接上同一个OnExit事件,就简单了。  
  我写给你,  
  type  
      THackControl   =   class(TControl);  
   
  procedure   TForm1.DoOnEnter(Sender:   TObject);  
  begin  
      FOldColor   :=   THackControl(Sender).Color;     //   OldColor事先需要定义。  
      THackControl(Sender).Color   :=   clYellow;  
  end;  
   
  procedure   TForm1.DoOnExit(Sender:   TObject);  
  begin  
      THackControl(Sender).Color   :=   FOldColor;  
  end;Top

9 楼feng_zi(二度程序员)回复于 2001-09-05 11:26:01 得分 0

先谢chechy,我试试,一会给分!Top

10 楼feng_zi(二度程序员)回复于 2001-09-05 11:40:39 得分 0

谢谢checky,成功了,以前我都是一个一个的设,那样好累,后来自己做了一个过程,但只能实现onenter的情况,却不能实现onexit,现在剩事多了!再次感谢checky!  
  问checky一个问题:  
    你是搞软件开发的吧,主要用delphi吗?在什么地方工作?我很想交你这个朋友!Top

11 楼feng_zi(二度程序员)回复于 2001-09-05 11:45:48 得分 0

谢谢checky,成功了,以前我都是一个一个的设,那样好累,后来自己做了一个过程,但只能实现onenter的情况,却不能实现onexit,现在剩事多了!再次感谢checky!  
  问checky一个问题:  
    你是搞软件开发的吧,主要用delphi吗?在什么地方工作?我很想交你这个朋友!Top

12 楼chechy(www.qdocuments.net)回复于 2001-09-05 11:46:04 得分 0

1、我搞软件开发,但是也搞一些研究。  
  2、我不用Delphi  
  3、在杭州。Top

相关问题

  • 控件的焦点问题
  • 控件的焦点问题
  • 如何获取当前焦点所在控件的控件名?
  • 自制控件,如何不让控件有焦点?
  • pb6的控件焦点问题
  • 如何设置控件焦点
  • 控件如何获得焦点!!!
  • 有关Edit控件焦点的问题
  • 怎样使控件不得到焦点?
  • 请教控件焦点的控制!

关键词

  • 控件
  • 软件开发
  • 消息
  • checky
  • onenter
  • thackcontrol
  • onexit
  • 焦点
  • 实现
  • 事件

得分解答快速导航

  • 帖主:feng_zi
  • enlightenment
  • chechy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo