你从哪抄来的??
最好用ID系列
IDYES,IDNO,IDCANCEL
等等
这个7可能就是IDNO吧
还有不要用abort()
用Action:=canone;

解决方案 »

  1.   

    昨天看别人的贴子上写的,还有两个方法,也都看不懂,能解释一下吗?
    1,
    procedure TMainWindow.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        if MessageDlg('您确定要退出吗?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            Action:=caNone;
    end;  2,
    if MessageBox(Handle,'是否关闭?','关闭',Mb_Question+Mb_YESNO)=IdYes then
      Close; 
    就这么两个,这都属于window句炳吗?
      

  2.   

    不是什么句柄
    mrno,idyes之类的东西
    是一个预定义常量的而已
    你最好还是多看看相关的书
    还是你不是科班出身??
      

  3.   

    这些语句似乎有一定格式的,例如messagebox('XXXXX','XXXX',mb_XX)
    哪类书有他们的资料?
      

  4.   

    Action 这个参数是传的地址,可以修改,并且之后的关闭窗口是会检查这个值.这个可以在
    vcl源码中看到.
    一般不应该在FormClose中调用CLose.
    如果你想关闭一个窗口,只要将它的ModalResult置为非0值就行了.当然这不是在FormClose中.
    procedure TMainWindow.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        if MessageDlg('您确定要退出吗?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            Action:=caNone;
    end;  
    这个过程是我推荐的