Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->Delphi ->正文

如何实现应用程序中的”回车”成TAB?

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]
 如何实现应用程序中的”回车”成TAB?
也就是说当按Enter键的时候,产生的效果是按了Tab键. 
下面是我经常使用的方法:
在你的数据模块中,添加如下代码:
interface
  。。。。。。
  type
    TMessageHandler = class     //使得回车消息转换成Tab消息
      class procedure AppMessage(var Msg:TMsg;var Handled:Boolean);
end; 
implementation
 
class procedure TMessageHandler.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message=WM_KEYDOWN then
    if (Msg.wParam=VK_RETURN ) and
      (
        (Screen.ActiveForm.ActiveControl is TEdit) or               
        (Screen.ActiveForm.ActiveControl is TComboBox) or
        (Screen.ActiveForm.ActiveControl is TCheckBox) or
        (Screen.ActiveForm.ActiveControl is TRadioButton)
              //可以添加需要的控件
      )
    then
    begin
      Msg.wParam:=VK_TAB;
    end
    else if (Msg.wParam=VK_RETURN) and
      (
       (Screen.ActiveForm.ActiveControl is TDBGrid)
      )
    then
    begin
      with Screen.ActiveForm.ActiveControl do
      begin
        if Selectedindex<(FieldCount-1) then
          Selectedindex:=Selectedindex+1{ 移动到下一字段}
        else
          Selectedindex:=0;
      end;
    end;
end;
为了使得整个应用程序都能够实现主要的功能,在主窗体的OnCreate事件中添加如下代码: 
procedure TfmMain.FormCreate(Sender: TObject);
begin
    Application.OnMessage:=TMessageHandler.AppMessage;
end; 
到此为止,你的应用程序已经实现了这个Enter->Tab的转换.



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:用XML做为数据存贮格式   下一篇:如何在启动机器时自动运行adsl拨号(1)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号