我的程序用十几个DBEdit做成一列,
用户希望按上下键切换他们的焦点
往下移动可以Perferm消息WM_NEXTDLGCTL
但是往前怎么办??
难道要Perferm消息WM_NEXTDLGCTL,很多次,直到循环回来??
大侠指条明路!!
用户希望按上下键切换他们的焦点
往下移动可以Perferm消息WM_NEXTDLGCTL
但是往前怎么办??
难道要Perferm消息WM_NEXTDLGCTL,很多次,直到循环回来??
大侠指条明路!!
解决方案 »
- 求李维的书《 Delphi6/Kylix2 SOAP/Web Service》 电子版
- IE中模拟点击“转到”按钮
- dll问题,急??
- 怎样在delphi中进行多次创建和位置保存
- DELPHI2005支持SmartClient吗?
- 各位大虾救命啊!!!关于ADOdataset CatchUpdate的问题!
- locate 函数的问题!急在线等待!!!!!!!
- 在Delphi中如何实现横向报表?
- 关于Label长度的问题
- 知道了窗体的句柄,如何刷新窗体,或是设置窗体的高度??
- 控件销毁(Free)的问题,急在线等待!
- +++++++++++++++如何提取文件夹的图标!?+++++++++++++
if Key = #40 then //#40为下键的ascii码
begin
Key := #0;
SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;
begin
case Key of
VK_DOWN:
begin
Key := 0;
if TWinControl(ActiveControl).TabOrder < MAXTABORDER then
SelectNext(ActiveControl, True, True);
end;
VK_UP:
begin
Key := 0;
if TWinControl(ActiveControl).TabOrder <> 0 then
SelectNext(ActiveControl, False, True);
end;
end;
end;
form1.keypreview:=true;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_up: perform(WM_nextDLGCTL,1,0); vk_down: perform(WM_nextDLGCTL,0,0);
end;
end;
vk_up: perform(WM_nextDLGCTL,1,0);//上键 vk_down: perform(WM_nextDLGCTL,0,0);//下键
end;