我在程序中建立了一个datamodel,两个form,假如form1为主form,form2为从form在datamodel中放置了一个adoconnect,一个adoquery和datasource,在form1中放了一个dbgrid,dbgrid的datasource为datamodel中的datasource,现在点击form1中的dbgrid中的某一行,进入form2,在form2中显示刚才选定的记录内容,为什么从form2返回form1中,重新点击其他的数据无效。

解决方案 »

  1.   

    我猜猜看:-〉  现象应该是这样的:第一次双击弹出form2,功能正常,关闭form2。第二次双击form2没有弹出。
      原因:双击时有检查 if assign(form2) then ……;关闭form2时是 form2.free;
    应该是form2的指针没释放吧。所以可以试试 freeandnil(form2);
      

  2.   

    现象不是这样的,第一次点击form1中的dbgrid后弹出form2,在其中显示的内容正确,关闭form2后返回form1,重新点击form1中的dbgrid,数据还是指向上次点击的记录,点击其他记录无效,form2 仍然弹出。我将form2.free了,无效。
      

  3.   

    要不就直接用
    show and hide!
    另问
    form2中用什么显示数据的?
      

  4.   

    忘了一句,我在显示form2时用的代码是
    form2:=Tform2.create(self)
    form2.showmodel