子窗口问题(50分)

  • 主题发起人 luosheng
  • 开始时间
L

luosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我设立了主窗口和子窗口
主窗口中这样设的frm:= TFrm.Create(frm_main);
DEfaultMonitor:=dmMainForm
FormStyle:=fsMDIForm
子窗口中这么设
DEfaultMonitor:dmActiveForm
FormStyle:=fsMDIChild
FormClose中:
frm.DestroyWindowHandle();
执行是不报错,但执行完以后系统报错:Cannot Create
Form.No MDI Forms are Currently Active

这是为什么??要怎么处理??
 

EfaultMonitor:dmActiveForm 问题出在这句。
因为MDI是需要一个activeform的
 
在MDI子窗体中的OnClose事件中加入
procedure TMDIChildForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
在MDI主窗体的OnCreate中不能建立MDI子窗体!
 
pcc_mmzl:能说详细点吗??
ysai:还是 一样啊!
 
frm_Main是什么东西?
 
晕,主窗口是菜单,点击进入子窗口
 
为什么要
frm.DestroyWindowHandle();
不用这个,只要在OnClose事件中加入
Action:=cafree;
就可以了
 
是啊!
还有主窗口Create函数设置错误
frm:= TFrm.Create(frm_main);
应该是
frm:= TFrm.Create(nil);
 
谢谢各位
 
多人接受答案了。
 
顶部