如何按退出按钮,而不激活EDIT的ONEXIT事件?(100分)

  • 主题发起人 主题发起人 lufang
  • 开始时间 开始时间
L

lufang

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一下TEDIT的ONEXIT事件中进行输入检测,
一个退出按钮用于退出本窗口。
但我按退出按钮时,先执行了输入检测的代码,
非常讨厌,如何按退出按钮,而不激活EDIT的ONEXIT事件?
 
这个问题我也经常遇到,不要“退出”按钮,直接用windows的窗口关闭按钮就可以了
这样就不会触发edit的OnExit事件了
 
TO luyear:
呵呵,如果窗口没有关闭按钮呢?:)
 
发消息
postmessage();
wm_close 正常退出
wm_quit 强制退出
 
增加一全局Boolean(Form1变量)bExcute=True
在edit的onExit中判断
if bExcute then
begin
........
end;
退出按钮:
bExcute:=False;
close;
或 SendMessage(Handle,WM_Close,0,0);(不知你是否在edit获得焦点)
 
to askyer:
这样也是不行的,因为当焦点一离开Edit,onExit事件马上触发,根本
来不及运行退出按钮onclick中的事件,所以还是无效的。
 
哈,
rookie_ron is right
 
在你的OnExit事件中加入:
if btnClose.Focused then
Exit;
 
不用这么麻烦吧?
TButton不行,换个没有焦点的Button来作退出按钮不就是了?
比如:换成TSpeedButton嘛!还好看!
 
嘿嘿,杜老大好取巧呀[:D]
 
我的问题已解决了。
 
怎么解决的?
 
我来迟了!!!!
 
在onexit事件里的第一行写上
if button1.Focused then
exit;
即可。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部