Professional VCL splash screen component ...

Professional VCL splash screen component for Delphi 10.3 Rio and later

Sep 07, 2026

DFSplashScreen

Press enter or click to view image in full size

image

Press enter or click to view image in full size

image

Press enter or click to view image in full size

image

Professional VCL splash screen component for Delphi 10.3 Rio and later.

Drop TDFSplashScreen on a form, or create it in your .dpr before the main form is created. Size, colors, opacity, rounded corners, logo, background image, progress bar, and fade in/out are all published properties.

Requirements

  • Delphi 10.3 Rio or newer

  • VCL (Win32 / Win64)

Quick start (no package install)

Add these units to your project:

  • Source/DFSplashScreen.Types.pas

  • Source/DFSplashScreen.Form.pas

  • Source/DFSplashScreen.pas

Then show the splash while the application starts:

program MyApp;
uses
  Vcl.Forms,
  DFSplashScreen in 'Source\DFSplashScreen.pas',
  DFSplashScreen.Types in 'Source\DFSplashScreen.Types.pas',
  DFSplashScreen.Form in 'Source\DFSplashScreen.Form.pas',
  uMain in 'uMain.pas' {frmMain};var
  Splash: TDFSplashScreen;begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;  Splash := TDFSplashScreen.Create(nil);
  try
    Splash.Theme := stDark;
    Splash.Title := 'My Application';
    Splash.Subtitle := 'Loading, please wait';
    Splash.AppVersion := 'Version 1.0.0';
    Splash.Copyright := 'Copyright (c) 2026';
    Splash.Width := 520;
    Splash.Height := 300;
    Splash.Opacity := 245;        // 0..255
    Splash.CornerRadius := 16;
    Splash.ShowSplash;    Splash.UpdateProgress(30, 'Creating forms...');
    Application.CreateForm(TfrmMain, frmMain);
    Splash.UpdateProgress(100, 'Ready');
    Splash.HideSplash;
  finally
    Splash.Free;
  end;  Application.Run;
end.

Install into the IDE (optional)

Do not right-click the project group. Install is only on the package project.

  1. In Delphi: File → Close All.

  2. File → Open Packages\DFSplashScreen.dproj (the .dproj, not the .groupproj).

  3. Confirm 32-bit Windows.

  4. Project → Options → Description → Usage = Designtime and runtime.

  5. Right-click DFSplashScreen.bpl in Project Manager.

  6. Click Install (Turkish IDE: Yükle).

TDFSplashScreen appears on the DF Controls palette.

If the menu still has Run instead of Install, the file was opened as an application: close it and open Packages\DFSplashScreen.dproj again.

You can still create the component in code; installing is only needed for dropping it on a form at design time.

Demo

Open Demo/DFSplashScreenDemo.dproj, compile, and run. The demo starts with a splash, then lets you change theme, width, height, opacity, radius, colors, logo, background image, and progress style live.

Themes

ThemeDescriptionstDarkDefault dark UIstLightLight UIstMidnightGitHub-style dark bluestOceanTeal accentstSunsetWarm accentstCustomYour own colors

Changing a color property automatically switches the theme to stCustom.

Main properties

PropertyDefaultMeaningTitleSubtitleStatussample textHeadline and status lineAppVersionCopyrightsample textFooterWidthHeight520 x 300Logical size at 96 DPI (auto-scaled)Opacity245Window transparency (0 = invisible, 255 = opaque)CornerRadius16Rounded corners (0 = square)AccentColorWindows-style blueTop bar and progressBackgroundColorBackgroundAltdarkFill / gradient endTitleColorTextColorwhite / grayTextProgressColorProgressBackColoraccent / trackProgress barProgressProgressMinProgressMax0 / 0 / 100Determinate progressProgressStylepsBarpsBarpsMarqueepsHiddenProgressHeight4Bar thicknessLogoLogoPositionLogoSizeleft / 72PNG, JPEG, BMP, GIFBackgroundImageOverlayDarkenempty / 80Full-bleed photo with dimmingGradientTrueVertical background gradientFadeInMsFadeOutMs280 / 220Fade animationStayOnTopTrueAlways on topCloseOnClickFalseClick closes the splashAutoHideInterval0Auto hide after N milliseconds (0 = off)FontNameSegoe UITitle and body font

Main methods

Splash.ShowSplash;
Splash.UpdateStatus('Connecting...');
Splash.UpdateProgress(60, 'Loading modules...');
Splash.LoadLogo('C:\Brand\logo.png');
Splash.LoadBackground('C:\Brand\splash.jpg');
Splash.HideSplash;
Splash.Execute(
  procedure
  begin
    // your startup work
  end);

UpdateProgress and UpdateStatus are safe to call from a worker thread (they marshal to the main thread).

Events

  • OnShow — after the splash is shown

  • OnHide — after fade-out completes

  • OnTimeout — when AutoHideInterval elapses

Tips

  • Call ShowSplash before Application.CreateForm so users see feedback during a slow startup.

  • HideSplash waits for the fade-out, so it is safe to Free immediately afterwards in the .dpr.

  • Prefer PNG logos with transparency.

  • Values for width, height, radius, and logo size are specified at 96 DPI and scaled for the current monitor.

https://github.com/delphifanforum/DfSplashScreen

Gefällt dir dieser Beitrag?

Kaufe DelphiFan Forum einen Kaffee

Mehr von DelphiFan Forum