你的程序测试过了,没有问题阿,是不适的判断语句assigned(frncompute) 不满足阿

解决方案 »

  1.   

    还有一种可能,你把 frmCompute Free了以后要 frmCompute := nil; 否则下次这样调用时 frmCompute 中是一个指向非法内存区域的指针,调用它的 free 方法当然要faill了。
      

  2.   

    类似的问题我也遇到过:我的有些程序放在某些机器上能正常运行,而有的机器(情况很少)出现地址错误。可能是你的Windows有问题,用Norton修复一下,如果你愿意的话,格式化硬盘重装Windows试试。
      

  3.   

    经测试没发现问题呀。
    当然,如果你自己创建Form,最好不要用Application.CreateForm方法,还是用Form1 := TForm1.Create的形式吧,因为Application.CreateForm可能会将该Form变为Auto-Create Forms,这种Form是不要手工Free的。
      

  4.   

    将frmCompute的Action属性设为nil.
    好像你的程序结构有问题?
      

  5.   

    看看frmCompute内部处理上有没有问题
      

  6.   

    建议你看看frmcompute的onclose事件处理程序,是否将action参数设为了CaFree;可能在你手工free frmconpute的时候,这个窗口已经被free掉了
      

  7.   

    我在调试过程中发现,在执行  if Assigned(frmCompute) then frmCompute.Free;
    之前 frmCompute的各种属性都很正常,FAction 属性为NIL。并且在同时机器上编译运行
    时也会出现同样问题。
      

  8.   

    To meijg,非常感谢您的热心帮助,但在FRMCOMPUTE中没有动态创建的控件,只有动动态
    数组算得上比较特殊的东东。