我在主窗口某按钮中用fm***.showmodal调用程序窗口fm***,为何报错:
raised exception class EInvalidOpertaion with message "Cannot make a visible window modal"
谢谢帮助。

解决方案 »

  1.   

    意思是:你的子窗口的visible 属性必须先设置为:False
      

  2.   

    因为ShowModal模式是不允许visible :=True
      

  3.   

    噢!我不从一句:我的意思是:被调用的窗口的visible要为False;
      

  4.   

    子窗口都要这样吗?
    怎么指定谁是主窗口谁是子窗口?
    show和showmodal该用哪个?
    (我刚开始学,书上没找到有关的说明,谢谢帮助啊。)
      

  5.   

    如果非要用showmodal方式的话在object选项里,打开option窗体设置主窗体
      

  6.   

    var
      frm : Tfrm_Record;
    begin
      frm := Tfrm_Record.Create(self);
      frm.Caption := 'test';
      frm.ShowModal;
      frm.Free;
    end;
      

  7.   

    TO:  arthurcn()  
        实际上,在程序中所有的窗口都是一些交互式中转平台。
    根本不必很在意那个是主那个是次,谁心所用,随手来去!
    潇洒自余!
    ======================================================
        用ShowModal 与Show的区别主要是:
    用ShowModal 打开窗体后焦点只能停留在当前窗口,直到当前窗口
    关闭后才可以恢复!
      

  8.   

    一旦用showmodal方法调用窗体之后,就不能处理其他项了,除非你关掉当前窗体
      

  9.   

    还有:
        窗口都可以临时生成,它的visible属性也可以动态改变。