首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

主界面有关问题

2012-02-10 
主界面问题我在做管理系统,从欢迎界面进入登录界面再到主界面,我现在的主窗体是登录窗体loginform,我想把

主界面问题
我在做管理系统,从欢迎界面进入登录界面再到主界面,我现在的主窗体是登录窗体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了。

热点排行