我使用的是Delphi5
我在做一个程序时发现,如果Form1动态调用Form2,而Form2再动态调用Form3,那么在form3中调用form2的stringlist时出现存取错误,但form2的stringlist此时尚未释放
form2调用form1的stringlist就没事请教各位同行原因,是否是Delphi5的BUG还是故意为之,或者是我机器的毛病?

解决方案 »

  1.   

    form2里的stringlist可能是创建的时候不对
    放在form2.Create里就不会有你说的问题吧
      

  2.   

    我估计你是直接引用form2这个变量,但form2是一个空指针,你说的动态调用form2实际上是动态创建一个tform2的实例,但赋给了另外一个变量,而不是全局变量form2。
      

  3.   

    rockswj wolf2005真是高手,楼主这么说两句你们就看明白了?
    1.form1 form2 form3是否是一个类的三个实例?
    2.他们之间是如何调用的?
    3.每个中的Tstringlist是什么时候被创建什么时候被释放的?
      

  4.   

    同意。
    Form2 := TForm2.Create(nil);
    with Form2 do begin
      ShowModal;
      Free;
    end;
      

  5.   

    to  manfeng() ,shuyi(舒易) ,jlutt(林渔) 
    看来问题是出在动态调用上,用jlutt的方式调用,结果不出错了
    见谅,没贴出代码,我动态调用时用的是
    with form2.create(nil) do
    begin
      showmodal;
      free;
    end;
    没有给from2这个全局变量赋值,哈哈,丢人丢人