新建一窗体,让他在运行时不是自动创建的,在使用时用Create的方法创建该窗体,现在假设
该窗体上有一个edit1控件,如果我要对他赋值(在其他窗体对他赋值),那么会有无效地址的错误.,怎样才能给他赋值呢?

解决方案 »

  1.   

    Application.CreateForm(TForm2,Form2) ;
      Form2.Show ;
      with Form2 do
      begin
        Edit1.Text := '1234' ;
      end ;
      

  2.   

    是这样的,form2 已经用Create创建,该窗体已经存在,现在我在form3对form2上的edit1.text赋值(也就是我不需要在另建一个form2了),就会出错, 这样怎么解决呢?
      

  3.   

    unit 3 中 uses unit2 ;with Form2 do
    begin
      Label1.Caption := '1234' ;
    end ;
      

  4.   

    这样吧,我贴出代码,会好理解些:
    form1代码:
    uses Unit2;{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);//建一个新的Form2
    var
     form2:Tform2;
    begin
       form2 :=Tform2.Create (self);
    end;
    procedure TForm1.Button2Click(Sender: TObject);//赋值
    begin
     form2.Edit1.Text := 'aaaaa';
    end;
    现在在建立一个form2后,再赋值就出错了
      

  5.   

    局部变量怎么可以在外边用呢 ? var
      f : TForm ;
      E : TEdit ;procedure TForm1.Button1Click(Sender: TObject);
    begin
      f := TForm.Create(Self) ;
      E := TEdit.Create(F);
      E.Parent := F ;
      F.Show ;end;rocedure TForm1.Button2Click(Sender: TObject);
    begin
      E.Text := '1234' ;
    end;
      

  6.   

    赞同计算机质子
    其实你也可以这样做用FIEL—>NEW->form
    建立两个form
    form1,form2
    在UNIT1中要引用UNIT2
    procedure TForm1.Button1Click(Sender: TObject);// begin
      application.create(Tform2,form2); 
    end;
    procedure TForm1.Button2Click(Sender: TObject);//赋值
    begin
     form2.Edit1.Text := 'aaaaa';
    end;