简单问题50分,如何使用ENTER键代替TAB键移动焦点的一些问题(50分)

  • 主题发起人 主题发起人 chenqi212
  • 开始时间 开始时间
C

chenqi212

Unregistered / Unconfirmed
GUEST, unregistred user!
我一般使用某个edit框或combobox的KEYDOWN事件来控制

如 if key=vk_return then //为什么有的时候可用通过,有的时候编译时提示错误??有什么问题?
edit2.setfocus;
if key=vk_f5 then
edit3.setfocus;

做几个还没有什么问题,但是一个form中有好多我要设置的框,有的在panel中,有的直接在form中
如何批量设置他们的焦点顺序?不然手工量太大了,

哪个弟兄有好办法,请贴出代码,不胜感激,谢谢!
 
把窗体的keypreview设为true:
Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
Begin
 if key=#13 then { 判断是按执行键}
 if not (ActiveControl is TDbgrid) Then
 Begin { 不是在TDbgrid控件内}
  key:=#0;
  perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
 end else
 if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
 begin
  With TDbgrid(ActiveControl) Do
  if Selectedindex<(FieldCount-1) then
  Selectedindex:=Selectedindex+1{ 移动到下一字段}
  else Selectedindex:=0;
 end;
End;
 
谢谢,出现了一个问题,
我在编译的时候这句错误
perform(WM_NEXTDLGCTL,0,0);
错误号
[Error] ztxx.pas(141): Illegal character in input file: ' ' ($A1A1)

怎么是在输入文件中非法字符(char)?????
请告知
 
这段代码你是否是从网页中拷贝去的?
自己手动输入就不会有这个问题了[:)]
 
在keyprass事件中
用如下代碼:
if Key=Chr(Vk_Return) then
begin
PerForm(WM_NextDlgctl,0,0);
Key:=#0;
end;
 
统统有分了,谢谢各位,结束问题
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部