用一个普通窗口打开MDI窗口后,此MDI窗口无法打开子窗口了...(100分)

  • 主题发起人 主题发起人 chinaplate
  • 开始时间 开始时间
C

chinaplate

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中根据功能划分,可能要用到多个MDI窗口,
在程序启动时,我先建立了一个普通窗口(normal),
在这个普通窗口中,通过按钮来选择各功能,进入相应
的MDI窗口,在这个MDI窗口中再去打开一个MDIChild
窗口时,系统报错
“Cannot create form. No MDI forms are currently active.”
去掉开始的普通窗口后,直接显示一个MDI窗口,没有问题。
用此MDI窗口去打开一个普通窗口,也没有问题。
请教各位高手,望指点迷经。
 
这样是不行的MDI窗口必须是第一个创建的窗口,你先创建NORMAL窗口是不行的
 
程序中好象只能有一个MDI窗口吧
 
我是刚从VB转到DELPHI上来的,在VB的一个工程中确实是不能建立多个MDI窗口的,
现在看起来,在DELPHI中,MDI窗口必须是第一个创建的窗口,能给我一些更有说服力
的证据吗?
在MDI前,我要是想显示启动画面,和登陆窗口,应该怎么办?
对与有多个MDI窗口的程序,应该怎样处理?(我的朋友用PB,确实实现我需要的功能)
谢谢各位,再请赐教。

 
就算是显示启动画面,和登陆窗口也是在MDI窗口CREATE的事件中或者后面
 
mdi主窗口要是main form
在MDI前,我要是想显示启动画面,和登陆窗口,应该怎么办:
或用mataijin的方法
或在工程文件的Application.Initialize;之前加入并释放

uses splash,logo;
splashform:=TSplashform.create(nil);
splashform.show;
splashform.close;
splashfrom.free;
...
logoform:=Tlogoform.create(application);
logoform.ShowModal;
if(logoform.modalresult<>mrOk)
begin
logoform.free;
application.terminate;
end;
logoform.free;
Application.Initialize;
//这里不能再有form create
Application.CreateForm(TMdiMainForm,MdiMainForm);
.........
 
对与有多个MDI窗口的程序, 你可建立独立的exe文件, 再用主exe去叫它们, 然后自己
写message去控制最大,最小和复原已及只有一个icon在taskbar上.
 
在程序里动态改变多个mdi的属性
Form1.windowstate:=...
Form1.formstyle:=fsMdiform;
Form2.windowstate:=...
form2.formstyle:=fsnormal;
 
打开多个MDI窗口是不行的,你可以将相应的模块编译成相应的EXE文件,然后调用就可以了.
 
此问题早以解决,谢谢各位,方法同sonie类似.
 
后退
顶部