例如有个OnExit方法:
procedure TfrmAddUser.Edit2Exit(Sender: TObject);
begin
if (Length(Edit2.Text)<5) or (Length(Edit2.Text)>10) then
begin
MessageBox(handle,'您刚输入的密码不在5-10位之间!请重试','提示',MB_ICONWARNING);
Edit2.SetFocus;
end;
end;
窗体上另有个“取消”按钮来取消操作,并关闭窗体。可如果焦点在Edit2中时,点击“取消”按钮则会执行不了取消和关闭窗体动作,只是响应Edit2Exit方法。怎么办呢?
procedure TfrmAddUser.Edit2Exit(Sender: TObject);
begin
if (Length(Edit2.Text)<5) or (Length(Edit2.Text)>10) then
begin
MessageBox(handle,'您刚输入的密码不在5-10位之间!请重试','提示',MB_ICONWARNING);
Edit2.SetFocus;
end;
end;
窗体上另有个“取消”按钮来取消操作,并关闭窗体。可如果焦点在Edit2中时,点击“取消”按钮则会执行不了取消和关闭窗体动作,只是响应Edit2Exit方法。怎么办呢?
解决方案 »
- 电子病历保存时候怎么实现保存为XML文件
- 这个码子有啥问题?
- 如何从我的WEB服务器上 下载下指定的文本文件到当前目录呢?给个思路或代码。谢谢。
- 请教关于 串口转TCP/IP 编程 问题 请朋友们多多帮助
- 请问如何用delphi制作类似于电子邮箱中加入附件的显示栏????
- 用ADOTABLE连接一个ACCESS表时,运行时出现的问题!欢迎来帮忙解决!
- bintohex的问题???急啊!!!!!!!!
- 才学DELPHI,提一个关于数据库的问题。
- 本人在OLE容器中嵌入EXCEL对象,请教如何将数据库中的数据分别填入到该OLE中的各项中?(焦急等待中!)
- 请问如何把任务栏的右键菜单中的关闭选项屏闭上
- 关于 ipv6 的讨论,参与者有分。
- 走!!见孔老夫子去。
写在Edit的exit事件里,
只要焦点一离开,就会进行判断
他不是不响应你的“取消”按钮的事件,而是你的
edit的<5或者>10
如果不是
肯定会执行“取消”按钮的事件!
begin
Close;
end;procedure TForm1.Edit2Exit(Sender: TObject);
begin
if Self.ActiveControl = Button2 then exit; //加个判断就行了
if (Length(Edit2.Text)<5) or (Length(Edit2.Text)>10) then
begin
MessageBox(handle,'您刚输入的密码不在5-10位之间!请重试','提示',MB_ICONWARNING);
Edit2.SetFocus;
end;
end;