Form创建的问题(100分)

  • 主题发起人 主题发起人 findya
  • 开始时间 开始时间
F

findya

Unregistered / Unconfirmed
GUEST, unregistred user!
我在项目文件里创建了两个form:
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmLogin, frmLogin);
其中frmMain是一个MDI主窗体,我需要先创建frmMain,所以把Application.MainForm指定为frmMain。
我的问题是如何在程序开始运行时只出现frmLogin,而先隐藏frmMain,谢谢!
[:D]
 
先创建FormLogin,但是不作为主窗体创建,类似下面的代码
frmLogin:=TfrmLogin.Create(Application);
if frmLogin.ShowModal=mrOk then
Application.CreateForm(TfrmMain, frmMain)
else
Halt;
 
呵呵,落了一个FrmLogin.Free了。不过道理是这样的。你自己写+实验吧
 
application.showmainform := False;
Application.CreateForm(TfrmMain, frmMain);
Loginfrm := TLoginFrm.Create(Application);
LoginFrm.ShowModal;
if LoginFrm.isPass then
begin
application.Showmainfrm := True;
end
else
application.terminate;
 
代码:
[blue]  if not LoginInf.SessionConnect then
  begin
    LoginInf.Free;
    Exit;
  end;

  try
    frmLogin := TfrmLogin.Create(nil);
    frmLogin.ShowModal;
  finally
    frmLogin.Free;
    frmLogin := nil;
  end;
  //登陆是否成功参数已经传出了.
  if LoginInf.Logined then
  begin
    Application.CreateForm(TfrmPactPer, frmPactPer);
  Application.Run;
  end;[/blue]
 
在 Loginfrm 的onclose里面释放窗体
Action := caFree;

Loginfrm.isPass是自己定义的变量,我想你应该明白他的意思吧
初始时 isPass := False;
如果用户通过检查 isPass := True; 否则 isPass := False;
 
问题已经解决,谢谢各位!
Nizvoo: 你代码中的LoginInf和frmPactPer是实现什么功能,能解释一下吗谢谢。
 
程序中的一根主线就LoginInf。相当于中介作用。

而frmPactPer是主窗体
 
多人接受答案了。
 
后退
顶部