V vivi0108 Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #1 if not Assigned(form2) then<br>form2:=tform2.Create(self);<br>form2.Show ;<br>form2.Free ;<br>是在form1的button中。如果多次按下button,会有什么结果?
if not Assigned(form2) then<br>form2:=tform2.Create(self);<br>form2.Show ;<br>form2.Free ;<br>是在form1的button中。如果多次按下button,会有什么结果?
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #2 窗体一闪而过;<br>把form2.Free ;<br>这句删掉即可,form2由其属主self释放
W whrs Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #3 会出现好多一样的窗体。因为FORM1始终可以处于激活的状态。
G guanyue7613 Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #4 什么都看不到,form2还没有show出来,就被form2的free掉了
V vivi0108 Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #5 我指多次按下buttom,到第2次就出错了,应该是form2已经free了一次,然后又执行了click,因为if 不满足,又执行了free,因为第一次已经清除对象了,所以没有对象可以free了,这样对吗?
我指多次按下buttom,到第2次就出错了,应该是form2已经free了一次,然后又执行了click,因为if 不满足,又执行了free,因为第一次已经清除对象了,所以没有对象可以free了,这样对吗?
G guanyue7613 Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #6 在free之后把form2的指针赋值为nil清空,这样就不会出错了
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #7 哦,我把重点都搞偏了,嘿嘿。<br>因为你用了if not Assigned(form2) then<br>所以你得把form2.Free 该为freeAndNil(form2)即可
哦,我把重点都搞偏了,嘿嘿。<br>因为你用了if not Assigned(form2) then<br>所以你得把form2.Free 该为freeAndNil(form2)即可
B Baiqi2000 Unregistered / Unconfirmed GUEST, unregistred user! 2007-05-18 #10 在一个窗体中,show另外一个窗口,举行操作,我一般都这么写,自认为这样规范一些,也不会出现你说的问题。<br>try<br> Form2 := TForm2.Create(Self); // Form2 我这里是直接引用的,不是自己定义的<br> Form2.Show; <br>finally<br> Form2.Free;<br>end;
在一个窗体中,show另外一个窗口,举行操作,我一般都这么写,自认为这样规范一些,也不会出现你说的问题。<br>try<br> Form2 := TForm2.Create(Self); // Form2 我这里是直接引用的,不是自己定义的<br> Form2.Show; <br>finally<br> Form2.Free;<br>end;