我设计了一个mdi主窗口,然后手工建立child子窗口并把它show出来。但是child一闪就没有了,代码如下:
if not assigned(child) then
    begin
     try
      child:=Tchild.Create(self);
      child.WindowState:=wsMaximized;      child.Show;
      LockWindowUpdate(0);
      child.BringToFront();
     finally
     child.Free;
     child:=nil;
    end;
   end ;

解决方案 »

  1.   

    不要进行 child.Free; Child:=nil;在 Child 的  OnClose 事件中 执行 Action:=caFree;
      

  2.   

    child.ShowModal;就可以了楼上的方法也可以。
      

  3.   

    现在问题的关键是不能将建立的child显示出来
      

  4.   

    if not assigned(child) then
        begin
          child:=Tchild.Create(application);
          child.Show;
       end ;
      

  5.   

    同意楼上,你Ceate了,但最后还执行了     finally
         child.Free;
         child:=nil;
    当然闪一下就关闭了/
      

  6.   

    if not assigned(child) then
        begin
          child:=Tchild.Create(application);
          child.Show;
       end ;
    -----------------------------------
    这样的话,创建一个子窗体后,child不再是nil了,这样就只能创建一个子窗体了,
    即使第一个子窗体被关闭。
      

  7.   

    你应该将 finally 改为 except