P pepsi-cola Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #1 form1.hide与form1.close的区别?
S SS2000 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #2 close的缺省动作是hide,不过可以在OnClose事件中给Action重新赋值,改变缺省动作, 比如Action:=caFree,这样,Close后,就会自动把窗体释放
L lasmai Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #3 close 會釋放資源,不能用Show來重新顯示,必須重新Create。 hide 只是隱藏窗體,可以用Show來顯示窗體。
T tswhoney Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #4 hide只是隐藏窗体,还没有释放资源,close则关闭窗体,并释放了资源.
S SS2000 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #5 如果OnClose事件什么也不做,Close和hide一样,不会释放资源 不会释放资源!! 绝对不会释放资源!!!
D daemonking Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #6 SS2000,请问,如果在OnClose不释放资源,那么在什么时候释放呢? 我做的实验是MDI窗体中子窗体Close的时候,内存不被释放
S skywin Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #7 我有一个苹果,吃了(CLOSE)跟藏起来(HIDE),有何区别?苹果吃了就没了,想再吃请买一个(CREATE), 苹果藏起来了,想吃我就拿出来就是了(SHOW).其当然在MDI中有点区别! 明白否?
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #8 procedure TMDIChildForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=cafree;//释放资源 end; //MID子窗体不能HIDE,在VB中是可以的,在DELPHI中要HIDE可以用API函数ShowWindow
procedure TMDIChildForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=cafree;//释放资源 end; //MID子窗体不能HIDE,在VB中是可以的,在DELPHI中要HIDE可以用API函数ShowWindow
我 我想我疯了 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #9 Close方法与Hide不同的是 例如: From1.Close; 1.Close方法调用的时候,就会调用对象的CloseQuery方法 如果窗口能被Close,那么CloseQuery返回true,执行Close,并且释放对象 如果返回false,那么Close方法终止执行。 如果Form1是程序的主窗口,那么相当于整个程序退出,等价于 Application.Terminate; 2.Hide方法调用的时候,它只修改对象的Visible属性 但对象仍然驻留内存
Close方法与Hide不同的是 例如: From1.Close; 1.Close方法调用的时候,就会调用对象的CloseQuery方法 如果窗口能被Close,那么CloseQuery返回true,执行Close,并且释放对象 如果返回false,那么Close方法终止执行。 如果Form1是程序的主窗口,那么相当于整个程序退出,等价于 Application.Terminate; 2.Hide方法调用的时候,它只修改对象的Visible属性 但对象仍然驻留内存
P powernet Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #10 show跟hide相互对应 create 跟destroy对应 在close后,destory会被执行。 但是对于mdi自窗口,默认情况下,不会destroy,只是minimize, 如果把action设为cafree,就是释放了
show跟hide相互对应 create 跟destroy对应 在close后,destory会被执行。 但是对于mdi自窗口,默认情况下,不会destroy,只是minimize, 如果把action设为cafree,就是释放了
P pepsi-cola Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #12 据我所知,close是不会释放的。不然为什么会有action := cafree这件事。 区别到底在哪里?!!!!!!!!!!!!!!!!!!!!
P pipi_lu Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #13 对于普通窗体,close就释放了; 而对于mdi的子窗体,必须在close事件执行action:=cafree才能释放,否则只是hide.
S SS2000 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #14 各位,要回答别人的问题,请搞清楚 我说得很清楚了,只调用Close,不会释放资源。 释放资源有两种方法 1:调用Close,并且在OnClose中,Action:=caFree; 2:直接调用Form1.Free; 区别在于,调用Hide函数,只调用OnHide消息 调用Close函数,先调用OnCloseQuery消息,再 调用OnClose,最后调用OnHide消息
各位,要回答别人的问题,请搞清楚 我说得很清楚了,只调用Close,不会释放资源。 释放资源有两种方法 1:调用Close,并且在OnClose中,Action:=caFree; 2:直接调用Form1.Free; 区别在于,调用Hide函数,只调用OnHide消息 调用Close函数,先调用OnCloseQuery消息,再 调用OnClose,最后调用OnHide消息
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #15 同意 SS2000,“只调用Close,不会释放资源。” 的确是这样的!当然,前提是你这个窗口不是主窗口(Application.MainForm)!
P pipi_lu Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-09 #16 刚才翻了翻书,我原来的说法是错误的,应该是: 对于主窗体,close就是中止程序 对于二级窗体,close的默认事件是caHide 对于MDI子窗体,close的默认事件是caMinimize
S SS2000 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-10 #19 我说的确实是只针对普通窗体。 对于主窗体和MDI子窗体,pipi_lu补充的很正确
P pepsi-cola Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-10 #20 是否可以理解为,对于二级窗体hide等同于close呢?