var
ShouForm:TShou;{TShou是一个窗体}
Begin
  ShouForm:=TShou.Create(Application);
  ShouForm.ShowMoudle;
  ShouForm.Free;
end;

解决方案 »

  1.   

    同意小千的,但这样写更好,不会出问题。
    var
    ShouForm:TShou;{TShou是一个窗体}
    Begin
    try
      Application.CreateForm(TShou,ShouForm);
      ShouForm.ShowMoudle;
      ShouForm.Free;
    except
      showmessage('窗体初始化失败!');
    end;
    end;  
    给分!
     
      

  2.   

    我的格式。
    总得要free
    procedure TF_1.N39Click(Sender: TObject);
    begin
            N33.Click ;        
            Try
                    F_10 := TF_10.Create( Self );
                    F_10.ShowModal ;
            Finally
                    F_10.Free ;
            End ;end;
      

  3.   

    对,在finally中总要释放资源的。
      

  4.   

    To jianping0(ljp)
    我写的有问题吗?
      

  5.   

    他不想用模态窗体嘛, 应该这样的。
    我在主窗口中,当一个按钮按下时:
    var
    ShouForm:TShou;{TShou是一个窗体}
    Begin
      ShouForm:=TShou.Create(Application);
      TShou.Show();
    end;
    在窗体的关闭事件里写
    Action:=CaFree;放掉窗体
      

  6.   

    我同意truezerg(赵明宇)的。
    我在主窗口中,当一个按钮按下时:
    var
    ShouForm:TShou;{TShou是一个窗体}
    Begin
      ShouForm:=TShou.Create(Application);
      TShou.Show();
    end;
    在窗体的关闭事件(OnClose)里写
    Action := CaFree;
    再在窗体的(OnDestroy)里写
    ShouForm := nil;
      

  7.   

    如果没有什么特殊要求的话,
    我建议干脆执行程序时创建窗体,然后使用show,即使在xxxx.prg文件中创建;
    而不是按下按纽时创建。
      

  8.   

    楼上两位的方法正确,但这么做有一个问题,就是多次点击按钮会生成多个ShouForm,
    一般情况下同一个窗体只需要显示一个就行了,那么可以这么做:
    如果不是MDI窗体,就像tikkypeng(千两狂死郎)兄写的那样用ShowModal显示
    如果是MDI窗体,就要定义全局变量ShouForm,然后加如下代码:
    begin
      if ShouForm = nil then
        ShouForm:=TShou.Create(Application);
      ShouForm.Show;
    end;
    还要加
    在窗体的关闭事件(OnClose)里写
    Action := CaFree;
    再在窗体的(OnDestroy)里写
    ShouForm := nil;试试看。
      

  9.   

    close并不执行destroy事件的,应该这样
    shouform.free;
    shouform:=nil;
      

  10.   

    同意 Nizvoo(瓦匠泥) 的意见  因为我特别喜欢.free 呵呵!
      

  11.   

    祝泡妞快乐!!!
    CSDN的兄弟们还等你回来玩呢