在KeyPress事件中写:
if Key = #13 then
ValidParentForm(Sender as TEdit).Perform(WM_NEXTDLGCTL, 0, 0)
if Key = #13 then
ValidParentForm(Sender as TEdit).Perform(WM_NEXTDLGCTL, 0, 0)
解决方案 »
- 关于RegisterClasses注册窗体类,FindClass... ...
- dbgrideh排序
- 关于程序用dxgettext实现本地化的问题(多语言)。
- 请问ehlib中的那个DEMO1中点击GRIDEH1时弹出另一个窗口是如何实现的?
- 请问哪里有Delphi函数的中文使用手册下载?
- 高分相送!
- help:Required package 'TEE' not found
- 请问有谁知道ord的用法
- 有没有试过记录Append-post-edit-post会出错? 解决?
- !!!!这个软件值二十元吗?
- 哪位大侠能把Socket的阻塞和非阻塞用低手能听懂的通俗语言解释一下??
- 菜鸟问题:怎样可以实时拦截对注册表的操作
高手,需要那么麻烦吗?直接用formkeypress不行吗?例如:
if key =#13 then
begin
key :=#0;
selectnext(activecontrol,true,true);
end;
能否解释以下您的写法的用意或者特别之处?
FormKeyPress也可以,但是KeyPreview要设为True。直接写
Form1.Perform(WM_NEXTDLGCTL, 0, 0),这样不用担心ActiveControl在某些时候是Nil。
if Key = #13 then {判断是否是执行键}
if not (ActiveConTrol is TDbgrid ) then
Begin {不在DBGRID中}
key := #0;
perform(WM_NEXTDLGCTL, 0, 0);{移动到下一个控件}
end else
if(ActiveConTrol is TDbgrid ) then{在DBGRID中}
Begin
With TDbgrid(ActiveConTrol) Do
if Selectedindex < (FieldCount - 1) then
SelectedIndex := SelectedIndex + 1{移动到下一字段}
else SelectedIndex := 0;
end;KeyPreview要设为True
begin
if Key = #13 then
SendMessage(Handle,WM_NEXTDLGCTL,0,0);
end;
然后将这个事件赋给你所有的Edit的OnKeyPress!
高手,受教了!小子明白也!我还真佩服你!真的!