在DLL中的MDI窗口的问题

siaosa 2003-07-04 03:56:29
在DLL中的MDI窗口的问题
MainForm1:TForm1为主表单
MDI表单中从DLL中导出的,在MDI表单中有一状态栏StatusBar1
MDI窗口中使用StatusBar1.Parent:=MainForm1主表单状态栏会不正确。
如果MDI表单与MainForm1在同一个Application中则状态栏会正确显示,这是为什么?

...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
李_军 2003-08-01
  • 打赏
  • 举报
回复
看看我的贴子吧
http://expert.csdn.net/Expert/topic/2094/2094919.xml?temp=.1091272
span_space 2003-08-01
  • 打赏
  • 举报
回复
up
offsider 2003-07-07
  • 打赏
  • 举报
回复
mark
qixin000 2003-07-05
  • 打赏
  • 举报
回复
Library ShowFrmdll;
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.

要注意的是,创建的窗体被释放后再卸载 DLL

http://expert.csdn.net/Expert/topic/1974/1974304.xml?temp=.9995996

http://expert.csdn.net/Expert/topic/1962/1962766.xml?temp=.2309839
siaosa 2003-07-04
  • 打赏
  • 举报
回复
有将Application对象传入DLL,要不关闭DLL的时候会报错
李_军 2003-07-04
  • 打赏
  • 举报
回复
你要将Application对象传入dll才行

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧