CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

delphi 小问题

楼主hcat1999(阿猫)2000-02-21 18:53:00 在 Delphi / VCL组件开发及应用 提问

在DELPHI中,如何实现:  
  当一个文本框输入完后,回车,自动转到另一个文本框  
  或执行按钮? 问题点数:50、回复次数:5Top

1 楼zxfan()回复于 2000-02-21 19:00:00 得分 20

在Keydown事件里:  
    if   (key=13)   then  
      begin  
          postmessage(handle,WM_KEYDOWN,vk_tab,0);  
          key:=0;  
      end;  
  Top

2 楼WHQ()回复于 2000-02-21 19:14:00 得分 10

如果文本框没有选择接收回车键的,则回车后,当前的缺省按钮会收到一个BN_CLICKED消息;否则你可把按键消息直接传给其父窗口(对话框)以便让缺省按钮得到消息或用SetFocus把输入焦点转到你所期望的文本框Top

3 楼Lin(林)回复于 2000-02-21 19:48:00 得分 10

1、设置Form的KeyPreview为True;  
  2、在Form的OnKeyDown事件中加入以下代码:  
  ...  
  if   Key   =   VK_RETURN   then    
  PostMessage(Handle,   WM_KEYDOWN,   VK_TAB,   0);  
  Key   :=   0    
  //如果想自动执行按钮,可删去上面一行,并设置执行按钮的Default属性为True;  
  ...  
  3、It's   OK.Top

4 楼yjq(渤海海峡)回复于 2000-02-21 19:58:00 得分 10

这个问题,前面有回答,我把答案给你,自己选吧   ,  
   
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   Venne   2000-1-13   17:00:14   0      
  那要看你是利用RETURN在几个控件中移动还是在一个类似于TDBGRiD这样的控件中单元移动了。  
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   caili   2000-1-13   17:05:28   0      
  Form.KeyPreview   :=   true;   在Form的KeyDown中  
  if   Key   =   VK_RETURN   then  
  begin  
  if   ActiveControl   is   TDBGrid   or   ...   then  
  PostMessage(ActiveControl.Handle,   WM_KEYDOWN,   VK_TAB,   0);  
  else  
  PostMessage(Handle,   WM_KEYDOWN,   VK_TAB,   0);  
  Key   :=   0;  
  end  
   
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   Firing_Sky   2000-1-13   19:35:14   0      
  同意caili  
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   fstao   2000-1-14   08:44:01   0      
  1、如果是用TEdit或TComcobox和TDBEdit,在Form1的onkeyDown写:  
  if   (Key=VK_RETURN)   THEN  
  ActiveControl:=FindNextControl(TWinControl(Sender),True,True,False);  
  然后上面的三个组件的OnkeyDown指向Form1的onkeydown就行了。  
  2、至于TDBgrid,可以参考caili,也可以下载infopower组件的Twwdbgrid组件。  
   
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   zyb   2000-1-14   09:47:42   0      
  看看如下代码吧:  
  procedure   TForm1.FormKeyPress(sender   :   TObject;varkey   :   char)   ;  
  begin  
  if   key=13   then  
  if   not   (ActiveControl   is   TDBgrid)   then  
  begin  
  key   :=   0   ;  
  perform(WM_NEXTDLGCTL,0,0)   ;  
  end  
  else   if   (ActiveControl   is   TDBgrid)   then  
  begin  
  with   TDBgrid(ActiveControl)   do  
  if   Selectedindex<(FiledCount-1)   then  
  Selectedindex   :=   selectindex+1  
  else  
  Selectedindex   :=   0   ;  
  end   ;  
  end   ;  
   
  end  
  end   ;  
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   tiger   2000-1-14   09:53:14   0      
  看看我的  
  在Form的KeyDown中  
  if   Key   =   VK_RETURN   then  
  begin  
  SelectNext(ActiveControl,   True,   True);  
  end  
   
     
  Re:各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招   forever   2000-1-14   09:57:24   0      
  我曾经写过几十个Vcl操作的公共调用,现把以下代码给你使用。  
  procedure   EnterToTab(aForm:   TForm;   var   Key:   Char);  
  begin  
  if   Key   =   #13   then  
  begin  
  key   :=   #0;  
  aForm.Perform(CM_DialogKey,   VK_TAB,   0);  
  end;  
  end;  
     
  Top

5 楼pear()回复于 2000-02-21 20:32:00 得分 0

我也有个小问题:我想用Delphi5.0调试远程数据库中的数据表,应该如何进行属性设置。  
  各位高手指教,不胜感激。我的EM:pear_610@cmmail.com  
  thank   youTop

相关问题

  • delphi小问题
  • 小狗学delphi
  • delphi小问题...
  • delphi小问题。
  • delphi小问题
  • delphi小问题
  • Delphi?
  • Delphi?
  • delphi的小问题
  • delphi小青虫(5562351)

关键词

  • 组件
  • 消息
  • 文本框
  • activecontrol
  • caili
  • tdbgrid
  • keydown
  • vk
  • 按钮
  • tab

得分解答快速导航

  • 帖主:hcat1999
  • zxfan
  • WHQ
  • Lin
  • yjq

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo