Sitemap

Professional VCL splash screen component for Delphi 10.3 Rio and later

3 min readSep 7, 2026

--

DFSplashScreen

Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size

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.

Get Alen IBRIC’s stories in your inbox

Join Medium for free to get updates from this writer.

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

PropertyDefaultMeaningTitle, Subtitle, Statussample textHeadline and status lineAppVersion, Copyrightsample textFooterWidth, Height520 x 300Logical size at 96 DPI (auto-scaled)Opacity245Window transparency (0 = invisible, 255 = opaque)CornerRadius16Rounded corners (0 = square)AccentColorWindows-style blueTop bar and progressBackgroundColor, BackgroundAltdarkFill / gradient endTitleColor, TextColorwhite / grayTextProgressColor, ProgressBackColoraccent / trackProgress barProgress, ProgressMin, ProgressMax0 / 0 / 100Determinate progressProgressStylepsBarpsBar, psMarquee, psHiddenProgressHeight4Bar thicknessLogo, LogoPosition, LogoSizeleft / 72PNG, JPEG, BMP, GIFBackgroundImage, OverlayDarkenempty / 80Full-bleed photo with dimmingGradientTrueVertical background gradientFadeInMs, FadeOutMs280 / 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

--

--