关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 构件使用 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

传递焦点的五种方法
作者: 评价: 上站日期: 2001-05-10
内容说明:
来源:

  在编程过程当中,有时我们需要人为地传递焦点到下一个 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 目录,里面有详细的解释。

  在使用以上的方法时,由于都没有考虑到当焦点转移时的数据变更问题,读者在实际运用中应加以注意和处理。

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 构件使用 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0