| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3627 人关注过本帖
标题:如何实现控件的焦点转移并把焦点控件的内容输出
只看楼主 加入收藏
超超小火星
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-10-31
结帖率:100%
收藏
 问题点数:0 回复次数:4 
如何实现控件的焦点转移并把焦点控件的内容输出
窗体上只有edit1到edit7  七个控件 ,要求能实现在按下回车和DOWN ARROW键时能实现控件的焦点转移(edit1到edit6),并且要能把获得焦点的控件中的内容text在edit7中输出。      ------(我只能实现焦点转移部分是最笨的方法实现地  而内容输出部分是在没有办法 请各位版主和大侠帮个忙。)
搜索更多相关主题的帖子: 控件 焦点 输出 
2008-11-21 16:00
ruanjian2110
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游民
威 望:7
帖 子:486
专家分:50
注 册:2008-5-25
收藏
得分:0 
使用if语句做下判断,哪个获得焦点就把获得焦点的控件中的内容text在edit7中输出就行了..

武汉信控科技有限公司:http://www. 超越技术,本身就是一个美好技术。。。。。。
2008-11-21 17:20
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
给 Edit1添加 OnEnter 事件,代码只需一行:
Edit7.Text := (Sender as TEdit).Text;

选中其他5个,在属性面板中将5个的 OnEnter 事件指定为 Edit1Enter 即可;
另外,在窗体的 OnShow 事件里执行一次初始化,让其显示当前已获得焦点控件的 text:
Edit1.SetFocus;

爱我至爱,至死不渝!
2008-11-21 23:21
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
本人最讨厌用回车键实现 Tab 键的功能……要实现按方向键移动,就要在控件的 OnKeyDown 事件琢磨琢磨了,不难。
至于获得焦点,用SetFocus 方法即可。只要是能获得焦点的控件,应该都有这个方法。

给一句超级无敌的 OnKeyDown 事件代码出来:

  if Key = VK_DOWN then
    TEdit(Controls[(Sender as TEdit).ComponentIndex +1]).SetFocus;

一下看不懂没关系,慢慢研究去

同样是6个 Edit 的 OnKeyDown 事件共用一个。不过有一点要注意,就是 +1部分:必需保证 Edit7 不用这个事件或者至少有一个 Edit 的 OnKeyDown 不用这个事件,否则会发生下标越界错误。

当然,为安全起见,还可进行例外处理,如嵌入到 try...except 中,或者判断一下中括号部分是否小于 Edit 控件的数量(按楼主的要求,为7), 只有小于才是安全的。

[[it] 本帖最后由 provoke 于 2008-11-22 00:15 编辑 [/it]]

爱我至爱,至死不渝!
2008-11-21 23:27
超超小火星
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-10-31
收藏
得分:0 
回复 第4楼 provoke 的帖子
太感谢版主provoke了  O(∩_∩)O哈哈~   俺实现功能了 那段超级代码俺也弄明白了 在老婆面前一顿炫耀(她也是敲代码地)
2008-11-24 16:47
快速回复:如何实现控件的焦点转移并把焦点控件的内容输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016255 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved