我想点击按钮,然后弹出DLL中的窗口,这些窗口可以同时工作。DLL中,我这样编写:procedure CreateForm(AHandle:THandle);
begin
Application.Handle:=AHandle; //传递句柄
PForm:=TForm1.Create(Application); //创建Application
PForm.Show; //显示窗口
PForm.Free; //释放
end;主程序中,把Application的Handle赋值给AHandle,然后调用。
但是,点击按钮的时候,窗口总是一闪而过,不知道为什么。如果我把上面中的代码改写成:
1.TForm1.Create(nil)
2.PFrom.Showmodal
这样就可以显示了,两个条件缺一不可。--->不过,这样不符合我同时工作的要求。另外,我是不是需要在主程序中,在关闭的时候,把那些窗口给DestroyWindow,把窗口销毁掉?否则会有内存泄露?
begin
Application.Handle:=AHandle; //传递句柄
PForm:=TForm1.Create(Application); //创建Application
PForm.Show; //显示窗口
PForm.Free; //释放
end;主程序中,把Application的Handle赋值给AHandle,然后调用。
但是,点击按钮的时候,窗口总是一闪而过,不知道为什么。如果我把上面中的代码改写成:
1.TForm1.Create(nil)
2.PFrom.Showmodal
这样就可以显示了,两个条件缺一不可。--->不过,这样不符合我同时工作的要求。另外,我是不是需要在主程序中,在关闭的时候,把那些窗口给DestroyWindow,把窗口销毁掉?否则会有内存泄露?
解决方案 »
- win32 Service中如何提供接口?
- 如何设置Delphi打开的目录
- 报表显示
- 这样的报表如何制作?用fastreport
- QuickReport下为什么在ColumnHeaderBand中设置的QRLabel的标题显示不出来?
- 第三方组件安装问题????????????????
- 请教?
- 重分,如何动态创建一组按扭,并能进行按扭的事件触发。解决后,给500分!
- treeview动态加入节点的问题?
- 在本机上可以运行,如何做安装包?交给用户,他们使用时,是否需要安装SQL SERVER ,逐一建库,表,链接
- Delphi新建一个窗口?
- 急救!硬盘损坏,无法修理,delphi程序只有很老的备份,酬金
PForm.Free; 你创建了窗体,又释放了窗体~~改为这样
try
Application.Handle:=AHandle; //传递句柄
PForm:=TForm1.Create(Application); //创建Application
PForm.ShowModal;
finally
pform.free;
end;
恩,换成ShowModal后就必须等你自己关闭窗口后才能free了,不会直接free
procedure CreateForm(AHandle:THandle);
begin
Application.Handle:=AHandle; //传递句柄
PForm:=TForm1.Create(Application); //创建Application
PForm.Show; //显示窗口
//PForm.Free; //释放 这个放在PFormOnClose里面去 就是在OnClose里面Action:=Cafree;
end;