登录问题(100分)

小韬

Unregistered / Unconfirmed
GUEST, unregistred user!
本人做一个系统,先显示一个欢迎界面,停留3秒钟后显示主界面,运行后欢迎界面能按
要求停留3秒钟,可当欢迎界面关闭后主界面只闪了一下便退出了,如何解决?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=576942
//以后问问题的时候, 找找前边的贴子, 就不用等待答案了! :)
 
form1为欢迎界面,form2为主界面(在同一工程内)。给form1加个timer,写下如下的事件代码:
Form2.Visible:=true;
form1.Timer1.Destroy;
form1.Free;
临时做的,可以实现你的功能,有没有更好的就没想了。
 
program dagl;
uses
Forms,
ShellAPI,
Windows,
Dialogs,
Sysutils,
main in 'main.pas' {FrmMain},
about in 'about.pas' {AboutBox},
datamo in 'datamo.pas' {DM: TDataModule},
ComOption in 'ComOption.pas' {FrmComOption},
Query1 in 'Query1.pas' {FrmQuery1},
Control in 'Control.pas' {FrmGControl},
FieldDef in 'FieldDef.pas' {FrmFieldDef},
DBFill in 'DBFill.pas' {FrmDBFill},
DayManager in 'DayManager.pas' {FrmDayManager},
Login in 'Login.pas' {FrmPassWordDlg},
splash in 'splash.pas' {FrmSplash},
UserManager in 'UserManager.pas' {FrmUserManager},
ChangePwd in 'ChangePwd.pas' {FrmChangePwd},
pass in 'pass.pas';
var
StartTime,EndTime:longint;
{$R *.RES}

begin
//密码验证
Passing:=false;
Count:=0;
FrmPasswordDlg:=TFrmPassWordDlg.Create(Application);
While count<3do
begin
FrmPasswordDlg.ShowModal;
if passing=true then
break
else
showmessage('用户名或密码错误!!还有'+inttostr(2-count)+'次机会');
Count:=count+1;

end;
if Passing=True then
// if FrmPasswordDlg.ModalResult =1 then
begin
Application.Initialize;
//飞溅屏
FrmSplash:=TFrmSplash.Create(Application);
FrmSplash.Show;
Application.ProcessMessages;
FrmSplash.Update;
FrmSplash.Refresh;
Application.Title := '飞世兰档案管理系统';
//延时
EndTime:=0;
StartTime:=GetTickCount div 1000;
while (EndTime-StartTime)<2do
EndTime:=GetTickCount div 1000;
// Sleep(1000);

Application.CreateForm(TFrmMain, FrmMain);
Application.CreateForm(TAboutBox, AboutBox);
Application.CreateForm(TDM, DM);
Application.CreateForm(TFrmComOption, FrmComOption);
Application.CreateForm(TFrmGControl, FrmGControl);
Application.CreateForm(TFrmDayManager, FrmDayManager);
Application.CreateForm(TFrmUserManager, FrmUserManager);
Application.CreateForm(TFrmChangePwd, FrmChangePwd);
FrmSplash.Hide;
FrmSplash.Destroy;

Application.Run;
end;
end.

拿分来,呵呵
 
我还能说什么
停3秒
可以sleep()
 
其实在显示主界面前时,最好在主界面Create时延迟几秒即可
 
估计你的欢迎窗体是主窗体,所以它关闭了就会导致程序退出。
 
同意教父,
你是否用的application.createform创建的欢迎界面啊?
如果是的话,又在工程文件所有这种语句的第一行,则你把它指定为了程序主窗体。
因为第一个用APPLICAITON.CREATEFORM创建的窗体是主窗体。它一关,自然应用程序就关了。
不过,按说你的所谓的主窗体不可能再显示一下的了,怎么回事。
可以把你的代码贴出来吗?[:)]
 
谢谢大家,我觉得教父说的是正确的,问题的主要矛盾就在这。
 
同意教父的
 
多人接受答案了。
 
顶部