DELPHI(VCL 및 FMX[Firemonkey]) 시작 시 환영 창 구현 코드

1817 단어 Delphi
VCL에서의 실현
program ZhouFamily;



uses

  Vcl.Forms,

  Winapi.Windows,

  FrmZhouFamilyMainU in 'FrmZhouFamilyMainU.pas' {FrmZhouFamilyMain} ,

  SplashFormU in 'SplashFormU.pas' {SplashForm} ,

  DmU in 'DmU.pas' {DM: TDataModule};



var

  Timestart, timeend: dword;



begin



  Application.Initialize;

  Application.MainFormOnTaskbar := True;

  SplashForm := TSplashForm.Create(Application);

  SplashForm.Show;

  SplashForm.Update;

  Timestart := gettickcount;

  Application.CreateForm(TDM, DM); //       

  Application.CreateForm(TFrmZhouFamilyMain, FrmZhouFamilyMain); //      

  timeend := gettickcount;

  if timeend - Timestart < 1000 then

  begin

    sleep(1000 - (timeend - Timestart));

  end;

  SplashForm.Hide;

  SplashForm.Free;

  Application.Run;



end.


  
 
 
 
FMX의 실현은 완벽하지 않다. 단지 플래시를 위해 플래시를 할 뿐이다. form의create 이벤트는 Application이기 때문이다.Run;나중에 실행했습니다. 만약 어떤 형제가 좋은 개선 버전을 가지고 있다면 저에게 통지해 주실 수 있기를 기대합니다!
program ZhouFamily;



uses

  FMX.Forms,

  System.SysUtils,

  FrmZhouFamilyMainU in 'FrmZhouFamilyMainU.pas' {FrmZhouFamilyMain} ,

  SplashFormU in 'SplashFormU.pas' {SplashForm} ,

  DmU in 'DmU.pas' {DM: TDataModule};



{$R *.res}



var

  Timestart, timeend: Tdatetime;



begin

  Application.Initialize;

  SplashForm := TSplashForm.Create(nil);

  Timestart := gettime;

  Application.ProcessMessages;

  Application.CreateForm(TDM, DM);

  Application.CreateForm(TFrmZhouFamilyMain, FrmZhouFamilyMain);

  Application.ProcessMessages;

  timeend := gettime;

  if timeend - Timestart < 1000 then

  begin

    sleep(1000 - trunc(timeend - Timestart));

  end;

  SplashForm.Hide;

  SplashForm.Free;

  Application.Run;



end.


좋은 웹페이지 즐겨찾기