<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Lazarus Pascal - Hoe maak je een splash screen voor als het programma start - Delphi, Lazarus, Free Pascal				            </title>
            <link>https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-hoe-maak-je-een-splash-screen-voor-als-het-programma-start/</link>
            <description>Tweaking4All.nl Discussie Forum</description>
            <language>nl-NL</language>
            <lastBuildDate>Mon, 20 Apr 2026 00:25:24 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>RE: Lazarus Pascal - Hoe maak je een splash screen voor als het programma start</title>
                        <link>https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-hoe-maak-je-een-splash-screen-voor-als-het-programma-start/#post-1337</link>
                        <pubDate>Tue, 26 Jan 2021 14:32:20 +0000</pubDate>
                        <description><![CDATA[Tip: soms werkt een enkele Application.ProcessMessages toch net even niet.
Ik heb daarom in mijn code een Application.ProcessMessages call extra toegevoegd:
  // Create and show splash scr...]]></description>
                        <content:encoded><![CDATA[<p>Tip: soms werkt een enkele Application.ProcessMessages toch net even niet.</p>
<p>Ik heb daarom in mijn code een Application.ProcessMessages call extra toegevoegd:</p>
<pre>  // Create and show splash screen
  fmLoading:=TfmLoading.create(Application);
  fmLoading.show;              
  <span style="color: #ff0000">Application.ProcessMessages;</span>
  fmLoading.Update;
  Application.ProcessMessages;</pre>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/">Delphi, Lazarus, Free Pascal</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-hoe-maak-je-een-splash-screen-voor-als-het-programma-start/#post-1337</guid>
                    </item>
				                    <item>
                        <title>Lazarus Pascal - Hoe maak je een splash screen voor als het programma start</title>
                        <link>https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-hoe-maak-je-een-splash-screen-voor-als-het-programma-start/#post-1336</link>
                        <pubDate>Tue, 26 Jan 2021 14:28:43 +0000</pubDate>
                        <description><![CDATA[Soms wil je een splash screen laten zien om de gebruiker visuele feedback te geven dat een programma aan het starten is.In een van mijn programma&#039;s kan het voorkomen dat het laden van de dat...]]></description>
                        <content:encoded><![CDATA[<p>Soms wil je een splash screen laten zien om de gebruiker visuele feedback te geven dat een programma aan het starten is.<br />In een van mijn programma's kan het voorkomen dat het laden van de database wat op zich laat wachten en in dat geval wil ik natuurlijk dat de gebruiker ziet dat het programma bezig is.</p>
<p>Omdat het me wat zoekwerk opleverde, leek het me een goed idee om de opposing hier te delen.</p>
<p><span style="color: #0000ff">Stap 1 - <strong>Make een new form</strong>, net zoals je dat met elk ander form zou doen. Zet <strong>FormStyle</strong> van het nieuwe form op <strong>fsSplash</strong>.</span></p>
<p><em>Merk op </em>: Ik noemde de unit "<span style="color: #ff0000">LoadingForm</span>" en de naam van het form is "<span style="color: #ff0000">fmLoadingForm</span>" (wat dan automatisch het <span style="color: #ff0000">TfmLoadingForm</span> type definieert).</p>
<p><span style="color: #0000ff">Stap 2 - Zorg ervoor dat de juiste <strong>unit in de LPR</strong> (project) <strong>file is toegevoegd</strong>:</span></p>
<pre>program MyProgram;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  {$IFDEF HASAMIGA}
  athreads,
  {$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, mainunit, About, <span style="color: #ff0000"><strong>LoadingForm</strong></span>
  { you can add units after this };

{$R *.res}               </pre>
<p><span style="color: #0000ff">Stap 3 - <strong>Create de Splash form voor de andere forms worden aangemaakt</strong>. Ook dit gebeurt in de <strong>LPR</strong> file:</span></p>
<pre>begin
  RequireDerivedFormResource:=True;
  Application.Scaled:=True;
  Application.Initialize;

<strong><span style="color: #ff0000">  // Create and show splash screen
  fmLoading:=TfmLoading.create(Application);
  fmLoading.show;
  fmLoading.Update;
  Application.ProcessMessages;</span></strong>

  Application.CreateForm(TMainForm, MainForm);
  <span style="color: #ff0000">// remove this line: <br />  // Application.CreateForm(TfmLoading, fmLoading);</span>
  Application.CreateForm(TAboutForm, AboutForm);

  <span style="color: #ff0000"><strong>// Hide and destroy splash screen
  fmLoading.close;
  fmLoading.Release;</strong> // comment this out if you'd like to use it in the application again</span>

  Application.Run;
end.              </pre>
<p> </p>
<p>En dat is alles ... 😊 </p>
<p><em>In het kort:</em></p>
<p>We maken handmatig een instantie van TfmLoading, welke we zichtbaar maken (show) en updaten (update).<br />We roepen Application.ProcessMessages aan om er zeker van te zijn dat dit meteen wordt uitgevoerd.</p>
<p>Daarna laten we de gewoonlijk forms aanmaken - maar verwijder wel de automatisch geplaatste regel voor het splash form.</p>
<p><em>Optioneel:</em></p>
<p>In mijn programma gebruik ik betreffende splash screen potentieel nog een keer (als de gebruiker een andere database opent).<br />In dat geval moet je de regel <strong>fmLoading.Release</strong> weghalen zodat het beschikbaar blijft.</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/">Delphi, Lazarus, Free Pascal</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.nl/forum/delphi-lazarus-free-pascal/lazarus-pascal-hoe-maak-je-een-splash-screen-voor-als-het-programma-start/#post-1336</guid>
                    </item>
							        </channel>
        </rss>
		