我正在写一个数据库程序
我先做了一个登陆界面,单用户登陆时进入主窗体(MDI)。
但是,如果我把登陆界面Login设置为主窗体,程序能进入,但是在MDI中无法使用子窗体。报错No MDI Forms as currently active,我知道时因为MDI不是主窗体引起的,但是如果把MDI设置为主窗体,程序的登陆界面login就没有了,请教大侠们怎么办?谢谢,我初学,请大家多多关照。
程序执行顺序login->mdimain->其他子窗体
我先做了一个登陆界面,单用户登陆时进入主窗体(MDI)。
但是,如果我把登陆界面Login设置为主窗体,程序能进入,但是在MDI中无法使用子窗体。报错No MDI Forms as currently active,我知道时因为MDI不是主窗体引起的,但是如果把MDI设置为主窗体,程序的登陆界面login就没有了,请教大侠们怎么办?谢谢,我初学,请大家多多关照。
程序执行顺序login->mdimain->其他子窗体
begin
Application.Initialize;
LoginForm.create;
LoginForm.show;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
当用户输入正确时才展开MDI窗口啊。我会没辙了,以前用的是VB,三分钟就搞定。难道DELPHI不能先启动一个窗体后再关联主窗体吗?
先启动登录窗口,判断合法性,在启动主窗体(设置mdi为主窗体)既可以,还不行的话,在留言
我的提示
工程文件里:
Application.Initialize;
FrmUserLogin:=TFrmUserLogin.Create(nil);//密码验证窗体
try
FrmUserlogin.Showmodal;
finally
FrmUserlogin.Free;
在登录窗体;里
if //用户合法
begin
Application.CreateForm(TMainForm,MainForm);
mainform.show;
end
else//非法
begin
application.Terminate;
exit;
end;
再操作后,我把窗体login free了.
但是还报错MDI Forms as currently active
procedure Tmain.FormCreate(Sender: TObject);
begin
login:=Tlogin.Create(self);
try
login.ShowModal;
finally
login.Free;
end;
end;
接下来,在登陆里判断,如果通过,那么把login关闭了,用可以了.
procedure TFrmMain.FormCreate(Sender: TObject);
if FrmLogin=nil then
FrmLogin:=TFrmLogin.Create(self);
try
FrmLogin.ShowModal;
finally
frmlogin.release;
frmlogin:=nil;