有两个窗体A和B,从A中发出命令让B窗口显示出来,
怎样才能对B窗口操作时禁止对A窗口操作?
我用B.ShowModal可以达到效果,但是只要单击B窗体上任意按钮,B窗体都会关闭,
怎样才能在只有单击关闭按钮时才能让窗体关闭呢?

解决方案 »

  1.   

    楼主说的我不明白。设置成ShowModal模式是能达到目的的啊你说的“单击B窗体上任意按钮,B窗体都会关闭” 
    我想是不是  你B上的所有按扭 都是 COPY 的  EXIT 按扭  共享 了 ONCLIKE 事件 的原因吧。
    楼主再仔细看看 按扭事件是怎么写的  和窗口设置没关系吧  我想
      

  2.   

    //---------------------------------------------
    //B窗口的确定按钮(TButton)设置modalresult属性为mrOk
    //---------------------------------------------
    procedure showB;
    var rt : integer;
    begin
        B := TB.Create(Self);
        rt := B.ShowModal;
        if rt = mrOk then
        {要执行的代码}   
        else
        {要执行的代码}
        B.Free;
    end;
      

  3.   

    还是得用ShowModal的方式,楼主出现的问题不是ShowModal窗口的的问题。
      

  4.   

    在 B 窗口的 CloseQuery 事件中判断是否应该关闭窗体吧。
      

  5.   

    ShowModal完全可以达到要求“但是只要单击B窗体上任意按钮,B窗体都会关闭”是其他错误导致的。
      

  6.   

    将B窗体上的BUTTON的MODALRESULT都设为MRNONE;
      

  7.   

    Tensionli() 说的很有可能,我以前遇到过一次,找了很久,后头我把另一个不关闭的按钮的属性相对比,才找到的你看看嘛
      

  8.   

    将 BUTTON的MODALRESULT都设为MRNONE;
      

  9.   

    ok,谢谢大家,
    我知道怎么回事了,不能把bitbtn的kind属性设置为ok,yes,all等,那样如果以showmodal方式显示的窗体只要一单击这样的按钮就会关闭。