如何在ActiveForm中使用MIDIFORM?(200分)

  • 主题发起人 主题发起人 xuejian
  • 开始时间 开始时间
X

xuejian

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用ActiveForm时,如果ActiveForm的主FORM是MIDIFORM,其MIDICHILDFORM为什么
不能打开?
如何正确使用?
 
没有人能回答吗?我提前一下!!
 
最简单的做法
1、先做一个APPLICATION,注意,MDIFORM一定要是应用执行的第一个单元,在这个UNIT中
要包括后面要用的所有UNIT
2、将APLLICATION改成ACTIVEFORM形式
先用向导建一个ACTIVEFORM,然后将MDIFORM改成从该FORM继承即可
 
TO pengjinlongex:
你的方法不可用。
我的问题具体应该是:
 有一个项目,原来是MDI应用,现转换成ACTIVE应用后,通过ACTIVE FORM创建MDI主FORM
此时系统认为该MDI主FORM为非活动状态,不可创建子FORM,该如何解决?
 
MDI好象只能为主Form吧,参考论坛以前的问题,做了一个例子,希望能有帮助:
Form1:普通窗体 Form2:MDI窗体 Form3:MDI子窗体
在delphi menu project-option中设置Form2为主窗体
1。delphi menu project-view source 将工程文件做如下修改:
begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
Form1.Showmodal
//先出现Form1,Form1取得控制权
Application.Run;
end.
2.在FORM1的按扭事件中创建FORM2
Form2:=TForm2.Create(application);
Form2.show;
3.在FORM2的按扭事件中创建FORM3
Form1.Close
//关闭Form1,此时转交控制权到Form2
Form1:=Tform1.Create(self);//重建Form1,如不需重建那最好不过了
Form1.Show;
Form3:=TForm3.Create(self);//创建Form3
Form3.Show;

初试了一下,运行是没问题,重建Form1时要闪一下,但Form3也在此时重建,因此不明显

 
to beyondair:
谢谢你,但你所提供的方法只适合于非ACTIVE FORM,所以不是我所要的答案!
 
虽然没有正确答案,但还是十分感谢大家!
 
后退
顶部