我又有问题了。。。。。 ( 积分: 25 )

  • 主题发起人 主题发起人 vivi0108
  • 开始时间 开始时间
V

vivi0108

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