MDI窗体中  hccshForm为子窗体
procedure ThccshForm.FormCreate(Sender: TObject);
begin
  try
    ....
  except
   ...//若要在这个事件中把hccshForm关闭(或阻止hccshForm子窗体创建)
    //怎么写代码?
  end;
end;

解决方案 »

  1.   

    procedure ThccshForm.FormCreate(Sender: TObject);
    begin
      IF hccshForm<>nil
      begin
        hccshForm:=nil;
        hccshForm.Free;
      end;
      hccshForm:=ThccshForm.Create(Nil);
      hccshForm.ShowModal;OR hccshForm.Show;
    end;
        在菜单项Project Opitons中From内容项中将From hccshForm从“Auto-Create Form ”移至“Available Forms”即可。
        用完后释放hccshForm,调用时再创建,这样做不占内存。
        不妨一试。
      

  2.   

    你看这样行不行:(换个思路)
    ******************************************************
     var
        frmHccsh:ThccshForm;
     begin
        if frmHccsh=nil then
           frmHccsh:=ThccshForm.Create;
        frmHccsh.showmodle; 
     end;
    ******************************************************
      

  3.   

    谢谢各位,但我想大家可能误解我的意思了我在主窗体已执行了:
    procedure TMainForm.B1Click(sender:Tobject);
    begin
      hccshForm:=ThccshForm.Create(Appliction);
      hccshForm.Show;
    end;现在的问题是:我想在子窗体hccshForm的FormCreate事件中判断一些数据,若数据出错就不创建(或阻止继续创建)子窗体//MDI窗体中  hccshForm为子窗体
    procedure ThccshForm.FormCreate(Sender: TObject);
    begin
      try
        ....
      except
       ...//若要在这个事件中把hccshForm关闭(或阻止hccshForm子窗体创建)
        //怎么写代码?
      end;
    end;
      

  4.   

    PostMessage(self.handle, WM_CLOSE, 0, 0);
      

  5.   

    if (...) then
      Free;