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 . |
分类:
delphi
【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在.NET Core中使用异步多线程高效率的处理大量数据
· 聊一聊 C#前台线程 如何阻塞程序退出
· 几种数据库优化技巧
· 聊一聊坑人的 C# MySql.Data SDK
· 使用 .NET Core 实现一个自定义日志记录器
· 字节豆包,来园广告
· 为什么推荐在 .NET 中使用 YAML 配置文件
· 在 .NET Core 中使用 Channel 实现生产者消费者模式
· 干掉EasyExcel!FastExcel初体验
· .NET 阻止系统睡眠/息屏