比如将DLL中的主窗体Create在主程序中的某个TWinControl中
那位大虾贴个代码,先谢过了
那位大虾贴个代码,先谢过了
解决方案 »
- fastreport控件与tfrPreview控件
- Delphi6报表打印时,各字段控件的位置是固定的,能不能自动向左移动?
- 时长12:34:56转成秒的函数?1234567.89转中文货币的函数?
- 呵呵,晕啊,我领导要一个对比照片的程序,要把一堆照片里的相同照片找出来(不同文件名的,而且有几千张)!!!
- 在stringgrid和dbgrid中,怎样对鼠标圈选的多行记录进行操作
- 求助,大家都是倒弄DELPHI的,能否发个好的简历参考一下
- 急:如何把DecisionGraph打印的大一些?
- 如何在DBGrid的Title上画图?
- 怎样由一对象和其属性名,获得此属性的所有枚举值
- 请问Win98中用Delphi如何与UNIX的Informix的数据库连起来?(十万火急)
- 请斑竹别删--救命的事(我在XP上如何访问2000?)
- 速达ERP源码下载!
uses
...
Unit1 in 'Unit1.pas' {Form1};var
DLLApp: TApplication;function ShowDllForm(App:TApplication; ACaption:String):Longint;stdcall;
begin
Application := App; if not Assigned(Form1) then
Form1:=TForm1.Create(Application);
Result:=Longint(Form1);
Form1.Caption := ACaption;
Form1.Show;
end;procedure DLLUnloadProc(Reason : Integer);
begin
if Reason = DLL_PROCESS_DETACH then Application := DLLApp;//恢复
end;exports
ShowDllForm;begin
DLLApp := Application; //保存 DLL 中初始的 Application 对象
DLLProc := @DLLUnloadProc; //保证 DLL 卸载时恢复原来的 Application
end.要注意的是,创建的窗体被释放后再卸载 DLLhttp://expert.csdn.net/Expert/topic/1974/1974304.xml?temp=.9995996http://expert.csdn.net/Expert/topic/1962/1962766.xml?temp=.2309839
procedure ShowForm(AHandle: THandle);
begin
with form1 do
begin
if Not Assigned(Form1) then
Form1 := TForm1.Create(Application);
Form1.ParentWindow := AHandle;
Form1.show;
end;
end;
也谢谢 小齐 和 ZyxIp(绝望中...)
先给分
ZyxIp(绝望中...) 给我发到 [email protected]