L
lccc
Unregistered / Unconfirmed
GUEST, unregistred user!
以下三个问题在672789中,未能有满意答案,重新整理提出:
以Form为例,其他对象也如此:
1、 一个Form的解除是由它的Owner负责的, 程序关闭时实际上由Owner关闭了这些Form,
比如Application,如果用语句TForm.Create(nil)创建了一个窗体,而又忘记使用
Free方法,那么,当程序关闭后,这些Form还在内存中吗?如果没有在内存中,谁
将它解除的?我想是不存在的。如果存在,则内存泄露。
2、 如果使用语句Form2:=TForm2.Create(nil),创建一个窗体Form2,并且Form2的Name
属性为空,然后设置Form2:=nil。现在,由Form2:=TForm2.Create(nil)语句创建的
对象是存在的,但因为使用了Form2:=nil语句,已经不能用Form2来访问。又因无Owner
属性,不能使用FindComponent方法来访问。现在如何操作这个对象?如何解除它?
3、 编写数据库程序时,调试时在Module窗口获知程序需要的BDEDLL,然后在安装程
序中(不用IntallShiled)直接复制到客户的机器,清问:在注册表中需要作那些修
改,或者说,如何让程序知道有这些([blue]数据库连接所使用的[/blue])动态库?用Installshiled
制作的按装程序并没有复制这些DLL到EXE所在目录。
以Form为例,其他对象也如此:
1、 一个Form的解除是由它的Owner负责的, 程序关闭时实际上由Owner关闭了这些Form,
比如Application,如果用语句TForm.Create(nil)创建了一个窗体,而又忘记使用
Free方法,那么,当程序关闭后,这些Form还在内存中吗?如果没有在内存中,谁
将它解除的?我想是不存在的。如果存在,则内存泄露。
2、 如果使用语句Form2:=TForm2.Create(nil),创建一个窗体Form2,并且Form2的Name
属性为空,然后设置Form2:=nil。现在,由Form2:=TForm2.Create(nil)语句创建的
对象是存在的,但因为使用了Form2:=nil语句,已经不能用Form2来访问。又因无Owner
属性,不能使用FindComponent方法来访问。现在如何操作这个对象?如何解除它?
3、 编写数据库程序时,调试时在Module窗口获知程序需要的BDEDLL,然后在安装程
序中(不用IntallShiled)直接复制到客户的机器,清问:在注册表中需要作那些修
改,或者说,如何让程序知道有这些([blue]数据库连接所使用的[/blue])动态库?用Installshiled
制作的按装程序并没有复制这些DLL到EXE所在目录。