我用Form1.button show Form2,Form2里有两个DBGRID,调用的数据源是Form1的数据源,我在双击DBGRid后关掉Form2,把所需要的纪录传回Form1中,两个Form的交流都是在Form1中uses Form2,Form2中uses Form1,Form1的button第一次运行时,一切正常,数据也正常传回,但第二次运行的时候就出现异常错误,光够一个Form2.Free是不够的,请问有什么办法可以解决
调试欢乐多
不然你用 if Form2 = nil then Form2 := TForm2.Create;就不能正确创建Form2.
1、既然你要用到才Create,那么首先在Project菜单选Remove from project...,不让Delphi自动创建他。
2、创建的时候这样:
if Form2 = nil then Form2 := TForm2.Create(Application);
//这里可以做点初始化;
3、在Form2的OnClose事件中写上,
Action := caFree;
Form2 := nil;
不然只是隐藏。
4、没有理由不成功的,如果真的不成功,检查你TForm2的代码,一定有错。
你怎么还能Show呢
在Show之前加上
Form2:=TForm2.Create(Application);