【身在题中不得其解,请高手指教】(100分)

  • 主题发起人 主题发起人 badcookies
  • 开始时间 开始时间
B

badcookies

Unregistered / Unconfirmed
GUEST, unregistred user!
在DLL 中
一个Form Name : frm_form 窗体属性 MDIChild
一个函数
procedure p(form : TForm)
begin
……
Application.CreateForm(Tfrm_form,frm_form);
……
end;
主窗体 MainForm 窗体属性 MDI Form
当调用
P(self);
报 can not create form No MDI Forms are currently active
请高手指教
 
你调用p函数的时候,主窗体还没建立或者当前未激活
如果确认主窗体当前是激活状态,不妨改为
frm_form := Tfrm_form.create(application);
frm_form.show;
 
这个方法我也用过了,还是没用
我将函数直接写在主窗体 跟踪 主窗体的active 是false 但是调用上述函数可以创建窗体
但是调用DLL中函数就有问题
我怀疑可能是传人的参数有问题
 
你的主窗体创建没有?
frm_form := Tfrm_form.create(frmMain);
frm_form.show;
 
在DLL 中的Application和调用程序的Application不是同一个对象,可以考虑把主程序的Application的Handle传递到DLL中。
 
后退
顶部