这段代码如何重用?

chenlh 2000-08-11 11:38:00
一个程序下来,onpress中有如此多的
if key=#13 then edit2.setfocus;
请问怎么重用?
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoao 2000-08-14
  • 打赏
  • 举报
回复
g
Larky 2000-08-11
  • 打赏
  • 举报
回复
欧我明白了!你不是要重用,是嫌每次都有麻烦是吧!
那你可以在form里面把keypreview设为true。然后在form的keydown里面加上一段代码
把焦点转移到顺序下一个控件上!
用Form1.Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;模拟一个tab键的按键就可以了
Larky 2000-08-11
  • 打赏
  • 举报
回复
拷贝下来在粘贴!
哈哈,这么小的一段程序你说怎么重用!
就是敲也费不了10几秒钟,还有重用一说?
wjt 2000-08-11
  • 打赏
  • 举报
回复
回车跳到下一个输入字段用这个方法太麻烦了。
首先将form的keypreview设为True
然后在 onkeypress 加入以下代码
if Key = #13 then
begin
Key := #0;
PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);{next control}
end;
kxy 2000-08-11
  • 打赏
  • 举报
回复
派生一个新的控件,OnPress中处理#13
Wingsun 2000-08-11
  • 打赏
  • 举报
回复
如果只是将这段代码从用的话,你可以在object Inspector中将别的控件的Onpress事件指向这个事件。如果你是要重用if key=#13 then ...就可以上面一样。
if Key=VK_RETURN then
begin
sendMessage(Handle,WM_NEXTDLGCTL,0,0);表示到下一个焦点的控件
Key:=0;
End
如果SendMessage(Handle,WM_NEXTDLGCTL,0,1);表示到上一个焦点的控件
kxy 2000-08-11
  • 打赏
  • 举报
回复
onpress中是谁的OnPress
yijun2000 2000-08-11
  • 打赏
  • 举报
回复
这样做会有一些问题,如果你需要在keypress后面做出里,并且处理不同的话,就不能这样了。
Michaelyfj 2000-08-11
  • 打赏
  • 举报
回复
按照Larky的说法,再修改如下:
在Form的Keydown事件中加入代码
if Key=VK_RETURN then
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
然后把所有的Edit控件或其他可获得Focus的控件的Keydown事件直接和formpress事件相关联。

5,386

社区成员

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

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