有两个form。都放好了uses unit1,unit2 代码下面 
form1: procedure TForm1.Button1Click(Sender: TObject); 
begin 
Form2:=TForm2.Create(nil); 
Form2.Edit1.Text:='测试文字传递'; 
form2.ShowModal; 
Form2.Free; 
end; form2: procedure TForm2.Button1Click(Sender: TObject); 
begin 
Edit1.Text:=Form1.Label1.Caption; 
Form1.Label1.Caption:=Edit1.Text; 
Form2.Close; 
end; 问题是为何form2的edit1的不能传值到form1的Label1呢。请高手修改。

解决方案 »

  1.   

    Reason:form2.ShowModal;模态显示,阻塞对form1操作,因此在Form2中Form1.Label1.Caption:=Edit1.Text;赋值无效把该句放在form2.ShowModal;之后应该可以
      

  2.   

    虽然循环引用是DELPHI的强项,但是不建议使用
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     form2:=Tform2.create(nil);
     form2.edit1.text:='测试文字传递';
     form2.show;
    end;
    procedure TForm2.Button1Click(Sender: TObject);
    begin
     //edit1.Text:=form1.label1.caption;
     form1.label1.caption:=edit1.Text;
     form2.Close;
    end;
    这么写是可以达到你的要求的.
      

  4.   


    这个很简单的吧,这样吧。form1弹出form2后,form2的值反馈给form1。就这么简单有谁会的?
      

  5.   

    zzflover 运行不成功form1没有接到form2传递过来的值。没有反应呀。
      

  6.   

    procedure TForm2.Button1Click(Sender: TObject); 
    begin 
    Edit1.Text:=Form1.Label1.Caption; 
    Form1.Label1.Caption:=Edit1.Text; 
    Form2.Close; 
    end; Edit1.Text:=Form1.Label1.Caption; 
    Form1.Label1.Caption:=Edit1.Text; 
    这两句肯定有问题的,你先取Form1.Label1.Caption的值赋给Edit1,马上又把Edit1.Text的值赋给Form1.Label1.Caption,这不相当于Form1.Label1.Caption的值没改变吗?其实是传回去了,你把Edit1.Text:=Form1.Label1.Caption;那句去掉就看到了,为什么要那一句?
      

  7.   

    谢谢林子。我犯这个错误。也谢谢ZZFLOVER的朋友。结贴