扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
从简单的开始,使用消息传递机制:
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 目录,里面有详细的解释。
在使用以上的方法时,由于都没有考虑到当焦点转移时的数据变更问题,读者在实际运用中应加以注意和处理。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者