DELPHI (VCL及FMX[Firemonkey])启动时的欢迎窗口实现代码

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.

  

转载于:https://www.cnblogs.com/zhqian/archive/2012/11/20/2778335.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值