Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495946
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:48:07

下载本文示例代码
p style="margin: 0">  在编程过程当中,有时我们需要人为地传递焦点到下一个 Control, 目的方便我们或者是用户更好的使用,在大量的数据单元输入或有大量的使用 TEDIT( TDBEDIT ) 控件时更是如此。笔者就日常使用的一些方法总结出来,以荀读者。   从简单的开始,使用消息传递机制:   1、把焦点传递到下一 Control: SendMessage(Form1.Handle, WM_NEXTDLGCTL, 0, 0);   2、把焦点传递到上一 Control: SendMessage(Handle, WM_NEXTDLGCTL, 1, 0); 这种方法的好处是无需考虑 Control 的数量、位置及 TabOrder 的顺序。    使用 Delphi 的内部函数 A:   1、把焦点传递到下一 Control: SelectNext((Sender AS TWinControl),true,false);   2、把焦点传递到上一 Control: SelectNext((Sender AS TWinControl),false,false); 这种方法的缺点是需考虑 TabOrder 的顺序。    使用 Delphi 的内部函数 B:   1、把焦点传递到下一 Control: FocusControl(FindNextControl((Sender AS TWinControl),True,False,false)); 2、把焦点传递到上一 Control: FocusControl(FindNextControl((Sender AS TWinControl),False,False,false)); 这种方法的缺点是需考虑 TabOrder 的顺序。     使用 Delphi 的内部函数 C:   1、把焦点传递到下一 Control: (FindNextControl((Sender AS TWinControl),True,False,false) As TWinControl).SetFocus;   2、把焦点传递到上一 Control: (FindNextControl((Sender AS TWinControl),False,False,false) As TWinControl).SetFocus;   这种方法的? 是需考虑 TabOrder 的顺序。    模拟 Virual Basic 的 SendKey 事件,建立一个 SendKey 方法,有兴趣的读者可以参考 Delphi 5 CD 光碟的Info\Sendkey 目录,里面有详细的解释。   在使用以上的方法时,由于都没有考虑到当焦点转移时的数据变更问题,读者在实际运用中应加以注意和处理。 p style="margin: 0">  在编程过程当中,有时我们需要人为地传递焦点到下一个 Control, 目的方便我们或者是用户更好的使用,在大量的数据单元输入或有大量的使用 TEDIT( TDBEDIT ) 控件时更是如此。笔者就日常使用的一些方法总结出来,以荀读者。   从简单的开始,使用消息传递机制:   1、把焦点传递到下一 Control: SendMessage(Form1.Handle, WM_NEXTDLGCTL, 0, 0);   2、把焦点传递到上一 Control: SendMessage(Handle, WM_NEXTDLGCTL, 1, 0); 这种方法的好处是无需考虑 Control 的数量、位置及 TabOrder 的顺序。    使用 Delphi 的内部函数 A:   1、把焦点传递到下一 Control: SelectNext((Sender AS TWinControl),true,false);   2、把焦点传递到上一 Control: SelectNext((Sender AS TWinControl),false,false); 这种方法的缺点是需考虑 TabOrder 的顺序。    使用 Delphi 的内部函数 B:   1、把焦点传递到下一 Control: FocusControl(FindNextControl((Sender AS TWinControl),True,False,false)); 2、把焦点传递到上一 Control: FocusControl(FindNextControl((Sender AS TWinControl),False,False,false)); 这种方法的缺点是需考虑 TabOrder 的顺序。     使用 Delphi 的内部函数 C:   1、把焦点传递到下一 Control: (FindNextControl((Sender AS TWinControl),True,False,false) As TWinControl).SetFocus;   2、把焦点传递到上一 Control: (FindNextControl((Sender AS TWinControl),False,False,false) As TWinControl).SetFocus;   这种方法的? 是需考虑 TabOrder 的顺序。    模拟 Virual Basic 的 SendKey 事件,建立一个 SendKey 方法,有兴趣的读者可以参考 Delphi 5 CD 光碟的Info\Sendkey 目录,里面有详细的解释。   在使用以上的方法时,由于都没有考虑到当焦点转移时的数据变更问题,读者在实际运用中应加以注意和处理。 下载本文示例代码


传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法传递焦点的五种方法
阅读(231) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~