在 Form1.button1中有事件:
form2:=tform2.create(self);
form2.TempFormName:=self.name;
form2.showmodal;但form2.tempform在form2.oncreate的时候就自动清空了.如何把form1.name传递到form2.tempformname中呢?
感谢各位!

解决方案 »

  1.   

    在form2设置public的string字段变量,通过form2.TempFormName := Self.Name 应该是可以得到
      

  2.   

    1、在form1的公共区public下面定义一个name,在form2的onshow事件再form2.TempFormName:=self.name; 
      

  3.   

    恩,只要通过一个public参数中转一下就可以了
      

  4.   


      private
        { Private declarations }
        FName:string;
      public
        { Public declarations }
      end;
      function showForm(ANAme:string);
    var
      Form2: TForm2;implementation{$R *.dfm}
    function showForm(ANAme:string);
    begin
      form2:=tform2.create(self);
      try
        form2.FName:=ANAme;
        form2.showmodal;
      finally
        Form2.Free;
      end;
    end;在form1中直接调用
    showForm(Form1.Name)
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     Form2:TForm;
    begin
      Form2:=TForm.Create(self);
      Form2.Name:=self.Name;
      form2.ShowModal;
    end;Form2是已经创建好的还是动态创建的,不晓得tempformname在哪定义了
      

  6.   

    如果是Form2是已创建好的
    那么tempFormName是定义在form2中的public中的了,不然在Form1中是引用不了Form2.TempFormName的
      

  7.   

    换一种写法,代码写在form2上:self.TempFormName:=Form1.name;