在form1:=Tform1.Create(application);之前
判断一下是否Assigned(form1)

解决方案 »

  1.   

    而且我在unit2里使用form1.componentcount时出错了
      

  2.   

    而且我在unit2里使用form1.componentcount时出错了
      

  3.   

    procedure TForm3.Button2Click(Sender: TObject);
    var
      form1:Tform1;//这里定义的是局部变量,unit2是引用不到的
    begin
    form1:=Tform1.Create(application);
    end;end.
      

  4.   

    uses Unit2,unit1;
    var
      Form3: TForm3;
      form2:Tform2;
      form1:Tform1;
      
    implementation这样就不能创建窗体了
      

  5.   

    写的什么呀,本来form1、form2、form3都是全局变量,你怎么给弄哪去了,你还自己定一个不局部变量,用得着吗?真奇怪。有个变量让你给吃了
      

  6.   

    现在我改了,
    form3是自动创建的,form2和form1是动态创建的,form3是主窗体
    procedure TForm3.Button2Click(Sender: TObject);
    begin
    if Assigned(form1) then
      begin
       form1:=Tform1.Create(application);
       form1.show;
       end;
    end;现在没有显示form1
      

  7.   

    procedure TForm3.Button2Click(Sender: TObject);
    begin
    if not Assigned(form1) then
      begin
       form1:=Tform1.Create(application);
      end;
      form1.show;
    end;
    应该如上