在FORM的ONCREATE事件中你动态创建了什么东西吗?

解决方案 »

  1.   

    大虾 我的formcreate事件里面是空的
      

  2.   

    创建DataModule1的时候,
    if DataModule1 = nil then
      DataModule1 := TDataModule1.Create(Application);
      

  3.   

    DataModule1 := TDataModule1.Create(Application);
    TFromXXX.create(application)
      

  4.   

    lyhold(让你飞)  ,你的意思是我每打开一回FormXXX都创建一个相应的dataModle ? 那我关闭的时候是不是也把datamodule给release了?但是,为什么呢?
      

  5.   

    我估计你忽视了一句代码:FormDM.free;
    FormDM:=Nil;//是不是这一句没有?
      

  6.   

    if not assigned(DataModule) then
       DataModule.Create(Application)finally
       FormDM.Free
       FormDM := nil;
    end;
      

  7.   

    你的数据集是否为动态的SQL,如果是则在Active:=true;之前加一个Active:false;
      

  8.   

    你的数据构件中的lookup field定义与其他有重的 或 你在程序中又创建一个枸称相同的
      

  9.   

    你在设计期激活TAdoDataSet看有没有错误?
    还有,设计期和运行期是否连接到相同的数据库?
      

  10.   

    不得已 把数据的dataset从datamodule里移到了form里,
    就可以了。
    谁知道,lookup字段在datamodule里有什么不同,为什么第一次创建可以,第二次不可以?
    谢谢
      

  11.   

    既然第一次运行正常,就不应该怀疑datamodule的问题,问题肯定在创建和释放之处,如果你使用:if not assigned(datamodule) then datamodule:=Tdatamodule.create(application);请不要把datamodule放在自动创建列。