delphi 小问题

hcat1999 2000-02-21 06:53:00
在DELPHI中,如何实现:
当一个文本框输入完后,回车,自动转到另一个文本框
或执行按钮?
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pear 2000-02-21
  • 打赏
  • 举报
回复
我也有个小问题:我想用Delphi5.0调试远程数据库中的数据表,应该如何进行属性设置。
各位高手指教,不胜感激。我的EM:pear_610@cmmail.com
thank you
渤海海峡 2000-02-21
  • 打赏
  • 举报
回复
这个问题,前面有回答,我把答案给你,自己选吧 ,

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;

Lin 2000-02-21
  • 打赏
  • 举报
回复
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.
WHQ 2000-02-21
  • 打赏
  • 举报
回复
如果文本框没有选择接收回车键的,则回车后,当前的缺省按钮会收到一个BN_CLICKED消息;否则你可把按键消息直接传给其父窗口(对话框)以便让缺省按钮得到消息或用SetFocus把输入焦点转到你所期望的文本框
zxfan 2000-02-21
  • 打赏
  • 举报
回复
在Keydown事件里:
if (key=13) then
begin
postmessage(handle,WM_KEYDOWN,vk_tab,0);
key:=0;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧