三个小问题!(200分)

  • 主题发起人 主题发起人 lccc
  • 开始时间 开始时间
L

lccc

Unregistered / Unconfirmed
GUEST, unregistred user!
以Form为例,其他对象也如此:
1、 一个Form的解除是由它的Owner负责,如果用
TForm.Create(nil),其解除由谁负责?
2、 如果调用Form2:=TForm2.Create(nil),并且
Form2的Name属性为空,然后设置Form2:=[nil];
现在,由Form1:=TForm1.Create(nil)语句创
建的对象是存在的,但因为使用了Form2:=nil;
语句,已经不能用Form2来访问。又因无Owner属
性,不能使用FindComponent方法来访问。现在
如何对这个对象进行操作?
3、 调试数据库程序时,使用Module窗口获知程序需要
的DLL,然后在安装程序中(不用IntallShiled)直
接复制到客户的机器,清问:在注册表中需要作那些
修改,或者说,如何让程序知道有这些(数据库连接
要使用的)动态库?
 
1."TForm.Create(nil),其解除由谁负责?"
由你自己负责,你自己写代码:如Form2.free;
2。不明白你的意思。
3。“如何让程序知道有这些(数据库连接
要使用的)动态库?”
你把必需的dll拷到你的exe目录,你的exe会知道并自动调用的,你不用担心。

 
我想我可能没有说清楚:
1、Form上的组件在Form释放时有Form管理这些组件的释放。
程序关闭时实际上由TApplication关闭了这些Form,但
没有Owner的Form的关闭由谁负责?如果在程序中没有使
用Free方法,程序关闭后这些Form还在内存中吗?如果没
有,谁将它解除?
2、Delphi是对象引用模型,对象可以没有Name属性,另外,
Form2是指向一个TForm实例的引用,当然可以解除这个
引用。
3、我这里说的DLL,是指数据库连接的DLL,比如BDE的DLL,
用Installshiled制作的按扎程序并没有复制这些DLL到
EXE所在目录。

谢谢!
 
后退
顶部