不使用Close方法,如何直接调用窗体上的‘x’按钮关闭窗体?另外想请教一下,Close方法除了去调用FormClose事件外还会做什么操作吗?

解决方案 »

  1.   

    窗体关闭的时候会触发CloseQuery和Close事件
    'X'和Close有什么区别?
      

  2.   

    你是不是要显示MessageBox窗口呀,这就需要处理'X'的消息了
      

  3.   

    不是了,现在我有个程序很有意思,在Button里用Close关闭程序会报错,但是直接点‘x’却可以正常关闭,所以想避开不用Close :) 不知道哪位大哥可以指点一下
      

  4.   

    你用SendMessage发一个close试试..但是这种情况应该找一下真正的原因!
      

  5.   

    你的BUTTON继承父类了吗?如果是就检查父类。如果你想中止程序,不如用Application.Terminate;
      

  6.   

    可能要先free你的子窗体,然后再close主窗体
      

  7.   

    你的问题应该是窗体没有free掉
    在formclose事件中写入 Action := CaFree;
      

  8.   

    sendmessage(self.handel,WM_CLOSE,0,0);//发送关闭窗口的消息
      

  9.   

    在formclose事件中写入 Action := CaFree;
      

  10.   

    sendmessage(self.handel,WM_CLOSE,0,0);
      

  11.   

    请问各位大虾,可不可以个我详细地解析一下sendmessage(self.handel,WM_CLOSE,0,0),最好就是连参数的用途也解析一下
      

  12.   

    [Error] Unit1.pas(27): Undeclared identifier: 'handel'
    是不是要USE什么东东啊
      

  13.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Postmessage(Form1.Handle,WM_CLOSE,0,0);
    end;
      

  14.   

    窗口的上关闭按钮是跟系统菜单关联的.你可以用 GetSystemMenu 获得窗口系统目录的句柄,然后再找到"关闭"菜单的句柄,向这个句柄发送BM_CLICK 理论上应该可以.我没有实现过.
      

  15.   

    晕死,服了你了...close关不掉,你的程序肯定有问题  不检查反而想怎么调用"X"!!多么无聊的人哦
      

  16.   

    sendmessage(self.handel,WM_CLOSE,0,0);//发送关闭窗口的消息呵呵,你的程序可能有问题
      

  17.   

    去检查你ONCLOSE()这个事件吧,绝对有问题