请问如何避免用户不对弹出窗体作正确操作(例如弹出窗体要求选择性别,两个单选按钮)而按"X'将该窗体关闭?
解决方案 »
- TComponent为什么要实现IDispatch的接口方法?
- 做过组件保存进来....
- cell表的问题!!帮帮俺!
- 关于文件夹拷贝的问题,为什么有些行,有些会出现源文件无法读取的错误提示!
- 截取字符串长度的问题
- fastreport中的对话框问题
- 有人修改过Delphi的ComObj.pas单元中关于createInstance的相关内容吗?我按李维书中说的去改了,但注册com+时提示:Undeclared identifie
- 那位大虾,有简单的d6做的dll的示例,能不能给一份!我参考参考!谢谢!我的mail:[email protected]
- 有知道哪个炒股的网站吗?
- 挑战程序极限
- 报表打印问题
- ADO连接oracle 数据
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if 不满足条件 then
begin
CanClose:= False;
Exit;
end;
end;
确定按钮为mrOK
取消按钮为mrCancel
调用该窗体时var
form:TselectForm;
begin
form := TselectForm.create(nil);
try
if form.showmodal()=mrok then
begin
//做你要做的事情;
end else
begin
//....
end;
finally
form.free;
end;
end;
这样跟用户按不按上面的叉没有关系;
这样不能屏蔽ait+f4要彻底断绝用户输入就拦截关闭信息
如果你遇到了这样的问题:
1、
如果用户在弹出窗体上,没有选定你让他选的按钮,而按了“X”关闭的,而你恰恰把代码写在了Close事件里,影响了你的程序逻辑;你该怎么办,
2、
还是你遇到了一个问题,而不去分析是不是你的代码逻辑问题,只是一味的想通过屏蔽“X”来使你的代码逻辑合理,这样是不对的,你应该从你的程序着手,而不是遇到了一个问题,就解决这个问题,应该在退一步,从再大一点的方向上看,看看是什么使你遇到了这样的问题,而别人就没有遇到,或者别人是怎么绕开这样的问题的;
EnableMenuItem(GetSystemMenu(Handle,False),SC_CLOSE,1);
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if 不满足条件 then
begin
CanClose:= False;
Exit;
end;
end;就算ait+f4也不能关闭窗口!