请问各位:
如何实现Vb中CausesValidation功能,在Delphi中;
也就是说在一个窗体中如何在点击“关闭”按钮时,不触发其他控件的OnExit属性,从而不进行有效性检验。我说的是点击窗体上自己放置的“返回”“关闭”之类的按钮
谢谢!
如何实现Vb中CausesValidation功能,在Delphi中;
也就是说在一个窗体中如何在点击“关闭”按钮时,不触发其他控件的OnExit属性,从而不进行有效性检验。我说的是点击窗体上自己放置的“返回”“关闭”之类的按钮
谢谢!
解决方案 »
- delphi 可以不可以发送arp数据包
- 用FastReport实现这样的报表,,,??
- 用什么数据库控件可以实现下面的功能?
- 在程序中我用 WinExec 启动了另一个程序,怎样判断该程序什么时候结束!
- 土土的问:调试程序时,如何查看sql里各个变量的当前值?
- 如何让query查询得的结果字段别名带括号?
- 简单问题,急!
- 使用 TXLSFile 类导出 Excel时,汉字后带有空格,请问高手解决过么?
- DLL的难题,哪位高手帮忙解决?
- 上海哪里能买到程序员大本营2001
- 怎样用qreport打印stringgrid里的数据报表?
- 用TTable的AddIndex方法,给一个已建数据表建立索引,出现"Table is busy."异常,是什么原因?
全局BlnOnClose变量一个,
在窗口OnClose过程中,把BlnOnClose设置为真,
在控件的OnExit过程中,
if BlnOnClose = True then
Exit
else
{你的控件失去焦点的代码。};
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Bln = True then
Exit
else
ShowMessage('Bad Method!');
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bln := True;
if MessageBox(Application.Handle,'Really Exit?',
'OnClose',mb_YesNo+mb_IconQuestion) = mryes then
begin
Action := caHide;
Application.Terminate;
end
else
Action := caNone;
Exit;
end;不过你的程序也许就不同了。
在OnExit事件里
if boolPriSign then
begin
校验
end;
在"关闭"事件里
boolPriSign:=false;
你是不是用线程去做的?校验代码和关闭的事件写在两个线程里了?如果不是的话,则没有办法退出,必须等到校验代码的程序结束后,因为如果你没有启一个新线程,则操作系统会把所有的程序都放在主线程里去执行,所以你必须等到上一个事件执行完后才能再对下一个事件进行处理。系统是不会同时为一个线程中的不同事件“同时”分配CPU时间的。如果你是用的是多线程,则可以实现,但是要考虑是否有必要和是否应该用。对于数据校验不建议用。