1. Programmierleitfaden: "Never repeat yourself".
2. ExtractFilePath
3. Wenn dein Form oben links angezeigt wird statt in der Mitte: Im Objektinspektor FormPosition vlt. auf "poDesigned" statt auf "poScreenCenter" stehen?
4. Deinen Code habe ich jetzt nur überflogen und eigentlich fast nur Bahnhof verstanden - schaut sehr unsauber aus.
Aber so wie es ausschaut willst du, dass wenn deine Anwendung startet ein (sog.) "Splash-Screen" ("Krafisches startbild") angezeigt wird und während dessen einige Aktionen passieren.
Dazu "hackst" du scheinbar die
DPR und den "OnHide"-Event der Splash-Form, um das zu erreichen. Du brichst sozusagen ein Loch in die Wand, obwohl die Tür gleich daneben ist. Das kann zu unschönen Problemen und Frickeleien führen (füge z.B. einfach mal eine neue Form zu deinem Projekt hinzu). Naja, zumindest weißt du dir zu helfen.
Einen Splash-Screen (Forum-Suche nach "
Splash Screen Tutorial") erzeugt man in der
DPR und zeigt ihn an (StartProcess.Show; Application.ProcessMessages). Vom Rest lässt man die Finger - wenn man nicht weiß, was man tut (und scheinbar weißt du das nicht ^^).
In deiner Hauptform in "OnFormCreate" kannst du nun einfach einen Aufruf an eine Funktion machen, die die nötigen Sachen erledigt:
Delphi-Quellcode:
procedure THauptform.DoStartProcess;
begin
MacheSache1;
Application.ProcessMessages; // um den Splash-Screen evtl. zu updaten
MacheSache2;
Application.ProcessMessages;
{...}
end;
Und nach dem Aufruf dieser Funktion gibst du den Splash-Screen einfach wieder frei. Aber so wie du's löst ist es ganz schön brachial.
Und 5. Wo startest du denn eine externe Datei in deinem Code?