主界面问题
我在做管理系统,从欢迎界面进入登录界面再到主界面,我现在的主窗体是登录窗体loginform,我想把主界面mainform设为主窗体,可是一这样设置在登录时就会发生错误,是不是我的工程文件写的不对?谁能帮我分析下?在一个系统中是不是一定要把主界面设为主窗体呢?如果就用loginform作为主窗体有没影响?
我的工程文件如下:
program PersonMIS;
uses
Forms,
UnitStartup in 'UnitStartup.pas ' {StartupForm},
UnitLogin in 'UnitLogin.pas ' {LoginForm},
UnitMain in 'UnitMain.pas ' {MainForm},
UnitDM in 'UnitDM.pas ' {DM: TDataModule};
{$R *.res}
begin
Application.Initialize;
StartupForm:= TStartupForm.Create(StartupForm);
StartupForm.Show;
StartupForm.Update;
Application.CreateForm(TLoginForm, LoginForm);
Application.CreateForm(TMainForm, MainForm);
StartupForm.Hide;
StartupForm.Free;
Application.CreateForm(TDM, DM);
Application.Run;
end.
[解决办法]
begin
Application.Initialize;
Application.ShowMainForm := False;
Application.Title := '进帐单开票系统 ';
Application.CreateForm(Tmainf, mainf);
Application.CreateForm(Tdataf, dataf);
Application.CreateForm(Tdlf, dlf);
Application.CreateForm(Tzprepf, zprepf);
Application.CreateForm(Tjsrepf, jsrepf);
Application.CreateForm(Tfjzdrepf, fjzdrepf);
Application.CreateForm(Tjzdrepf, jzdrepf);
Application.CreateForm(Txjzprepf, xjzprepf);
Application.Run;
end.
这是我的源程序,你看看你那里写的不对!~
[解决办法]
begin
Application.Initialize;
StartupForm:= TStartupForm.Create(StartupForm);
StartupForm.ShowModal;//模式显示
if StartupForm.ModalResult = mrOK then//ModalResult返回何值,在登陆窗体中设置
begin
Application.CreateForm(TLoginForm, LoginForm);
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TDM, DM);
Application.Run;
end else Halt(0);
end.
[解决办法]
应该把DM先创建(我想你可能在LoginForm里存在一个东西是MAINFORM需要访问的, 你先找找,然后移到DM里
begin
Application.Initialize;
StartupForm:= TStartupForm.Create(StartupForm);
StartupForm.Show;
StartupForm.Update;
Application.CreateForm(TDM, DM);
LoginForm := TLoginForm.Create(Application);
StartupForm.Close;
StartupForm.Free;
if LoginForm.ShowModal = mrOk then
begin
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end
else
Halt(0);
end.
[解决办法]
建议还是把主界面作为主窗体
在主窗体的Create事件中创建、显示登陆窗体,如果登陆失败则Close
另:DM创建应在MainForm前面,否则登陆时不能用这个DM了。