关于MDI窗体的问题

wltg2001 2009-06-19 12:15:10
我的窗口有一个登录窗口,被设为MainFrom了,主要工作窗体并不是MainForm,现在我想将主要工作窗体和另外一个窗体设置成MDI和它的子窗体,按一般方法将这两个窗体的FormStyle分别设为fsMDIForm和fsMDIChild后,运行出错,提示说当前没有激活的MDI主窗体,请问有什么办法解决?
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2009-06-19
  • 打赏
  • 举报
回复
楼上几位的说法我看了,大致的思路是将MDI主窗体设为MainForm是吗,然后用其它方法让登录窗口先显示出来.我想问一下只有这种方法吗?
DEPHI我是真的不会,想想还是VC/MFC好
虎滴小猪猪 2009-06-19
  • 打赏
  • 举报
回复
厉害,比我的解释短,简单,明了
火龙岛主 2009-06-19
  • 打赏
  • 举报
回复
打开项目属性ctrl+shift+f11
把你的mdiform设置为第一个启动的窗体,移除mdichild窗体!
或者更改工程源代码。
虎滴小猪猪 2009-06-19
  • 打赏
  • 举报
回复
把工程单元的program XXXX;
里边的Application.CreateForm(TMainForm, MainForm);
屏蔽掉。
要想让登录窗口先显示,可以先隐藏主窗口,显示登录窗口的代码卸载主窗口的代码里。
或者,建个不显示的单元,在里边写显示登录窗口的代码,
function UserLogin: boolean;
begin
result:=false;
if not assigned(frmLogin) then
frmLogin := TfrmLogin.Create(nil);
frmLogin.ShowModal;

if (frmLogin.ModalResult=mrOK) then
begin
result :=true;
InitPubSetting();
end;

frmLogin.Close;
FreeAndNil(frmLogin);
end;

在工程单元里的MDIForm窗体创建前写

Application.CreateForm(TSysDBOp, SysDBOp);
if not UserLogin then
begin
freeandnil(SysDBOp);
Application.Terminate;
exit;
end;
wltg2001 2009-06-19
  • 打赏
  • 举报
回复
没人答吗?这个应该是DEPHI的基本问题吧,虽然我不会

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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