父窗体form1打开子窗体form2
form2 := tform2.Create(self);
try
  form2.ShowModal;
  finally
  form2.free;
  end;
打开正常
但在form2执行这样的语句出错
s:=form1.text1.text;

解决方案 »

  1.   

    提示什么错误,是否form2单元没引用form1单元
      

  2.   

    提示这样的错误
    Access violation at address 0307E9FA in moudule 'activeformproj.ocx'.read of address 00000334
    activeformproj.ocx是我新建的一个activeform工程。在这个界面先打form1,再在form1打开form2, 而form1,form2都是普通窗口
      

  3.   

    你的本意是想在form2中引用form1中的内容,对不?但是这样引用会带来很多问题。要在form1单元中引用form2单元,还要在form2单元中引用form1单元,一个变化会引起另一个变化。可以参考如下的方法
    form2 := tform2.Create(self);
    try
      //在窗体form2在中设置一个属性或全司局变量
      //像这样的取值问题最好用属性或在创建窗体时给予读取,如果是动态取值问题(form1中的值变化时form2中的值自动变化)最好用消息
      form2.s := form1.text1.text;
      form2.ShowModal;
    finally
      form2.free;
    end;