procedure TPwdChangeForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if  messagedlg('您是否退出密码修改窗口?',mtconfirmation,[mbyes,mbno],0)=mryes
   then
      begin
        CanClose:=True;
      end
   Else CanClose:=False;
end;我在密码修改后点确定键时就想直接关闭窗口,但又不想显示上面这段message
应该怎么做,我看了form.CloseQuery()是一个函数,是不是能直接用他将CanClose设为True啊,怎么设.我现在是用的Form.Close

解决方案 »

  1.   

    呵呵
    你不用它就用不着写这个事件啦
    procedure TPwdChangeForm.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    begin
            CanClose:=True;
    end;
    是多此一举
      

  2.   

    呵呵,肯定是copy别人的代码,你可以将begin end之间的代码删除,然后保存就可以了,系统会自动将这个事件去掉。
      

  3.   

    如果你想达到你的要求,那么保留这个事件的内容,但其中多添加一个全局变量,如closenotquery:boolean;procedure TPwdChangeForm.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    begin
      if closenotquery then
      begin
        CanClose:=True;
        exit;
      end;
     
      if  messagedlg('您是否退出密码修改窗口?',mtconfirmation,[mbyes,mbno],0)=mryes
       then
          begin
            CanClose:=True;
          end
       Else CanClose:=False;
    end;closequery赋true值在在密码修改点确认按钮时完成
      

  4.   

    那在点关闭钮时写入下面代码就可以了
    ONCLOSEQUERY就不用 写了,否则在所有FORM要关闭时提示信息就会出现:
    if  messagedlg('您是否退出密码修改窗口?',mtconfirmation,[mbyes,mbno],0)=mryes
       then
            CLOSE;
      

  5.   

    是呀,你要在关闭按钮实现的东西,写到那个button的OnClose事件里就可以了。如楼上的
      

  6.   

    谢谢大家!
    不过我觉得 cobi(我是小新) 的比较接近我的意思.