程序初始化,窗体创建的有关问题

程序初始化,窗体创建的问题!
var
    STime,VTime:int64;
{$R   *.res}

begin
    Application.Initialize;
    Application.Title   :=   '江阳电业局工程项目管理系统 ';

    STime:=GetTickCount;
    frmFirst:=tfrmFirst.Create(application);
    frmFirst.Show;
    //frmFirst.Update;

    Application.CreateForm(TdCustomer,   dCustomer);

    frmDenglu:=TfrmDenglu.Create(application);

    Application.CreateForm(TfrmMain,   frmMain);
    Application.CreateForm(TfrmHetong,   frmHetong);
    Application.CreateForm(TfrmCailiao,   frmCailiao);
    Application.CreateForm(TfrmLingyong,   frmLingyong);
    Application.CreateForm(TfrmCailiaoFind,   frmCailiaoFind);
    Application.CreateForm(TfrmLyCailiaoAdd,   frmLyCailiaoAdd);
    Application.CreateForm(TfrmHtGuanlian,   frmHtGuanlian);
    Application.CreateForm(TfrmSysSet,   frmSysSet);
    Application.CreateForm(TfrmReport,   frmReport);
    Application.CreateForm(TfrmHTFind,   frmHTFind);

    VTime:=3000-(GetTickCount-STime);
    if   VTime> 0   then
        Sleep(VTime);

    frmFirst.Free;
    frmDenglu.ShowModal;

    Application.Run;
想实现:
    闪现窗体frmFrist出现的同时,系统初始化其他窗体。   frmFrist销毁失的时候frmDenglu(登录窗体)出来。登录窗体销毁的时候frmMain主窗体出来!
   
作为delphi初学者,有点糊涂。请各位指点下!

------解决方案--------------------
frmFirst:=tfrmFirst.Create(application);
--frmFirst.Show; 闪现窗体frmFrist出现


Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmHetong, frmHetong);
Application.CreateForm(TfrmCailiao, frmCailiao);
Application.CreateForm(TfrmLingyong, frmLingyong);
Application.CreateForm(TfrmCailiaoFind, frmCailiaoFind);
Application.CreateForm(TfrmLyCailiaoAdd, frmLyCailiaoAdd);
Application.CreateForm(TfrmHtGuanlian, frmHtGuanlian);
Application.CreateForm(TfrmSysSet, frmSysSet);
Application.CreateForm(TfrmReport, frmReport);
Application.CreateForm(TfrmHTFind, frmHTFind);

--系统初始化其他窗体


frmFirst.Free; --frmFrist销毁失
frmDenglu.ShowModal; --frmDenglu(登录窗体)出来,ShowModal打开模态窗体,就是窗体不返回一个值的话就一直停留在这句,返回一般有mrOK,mrCancel;
Application.Run --如果frmDenglu.ShowModal返回值了,就执行这一部,打开主程序