首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于DLL中创设窗体的讨论

2012-08-11 
关于DLL中创建窗体的讨论~在dll中创建窗体有用传入的主程序的句柄进行创建的Application.CreateForm(Tform

关于DLL中创建窗体的讨论~
在dll中创建窗体有用传入的主程序的句柄进行创建的
Application.CreateForm(Tform1,form1);
也有直接创建的
form1:=tform1.creat(nil);

利用主程序句柄创建的窗体,因为有handle只能开窗一次;

而直接创建的窗体,没有拥有者,可以开多次~~

我这样理解正确吗?

还有这两种方法的释放好像也不相同,大家也谈一下自己的心得~~


[解决办法]
不管哪种方法,都是想创建多少就创建多少,只不过你这样子实例变量只有一个...如果创建多个最好用数组,list等保存好对象

释放都可用form.close,没啥不同的
[解决办法]
都可以无限开的
[解决办法]
好像都有拥有者吧,都是APPLICATION来管的,第一个用Application.CreateForm建的窗口,被设为FMainForm
[解决办法]
form1:=tform1.create(nil); 这种方式需要自己释放吧,直接form.close,我觉得可没有释放所占内存

[解决办法]
可以无限创建的,俺一般不用窗体实例变量,直接
with txx.create(nil) do
begin
do anythings;
end;

其它单元需要引用什么就传递参数过去
[解决办法]
dll的导出创建窗口函数中,要有handle的参数,调用该函数时,传入application.handle,
然后创建窗口时用 form1:=tform1.creat(application.handle);
 
释放都不用管了,delphi会自动释放的。
[解决办法]
手动创建的,好像要用free来释放

热点排行