Einzelnen Beitrag anzeigen

Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Eure Meinung zu einem Loader, was muss er haben?

  Alt 9. Mär 2009, 08:42
Hallo BAMatze

Also ich denke, wenn du im kleinen dieses Tut nachbaust, wird es funktionieren.

Vielleicht hilft dir das weiter:
Wenn du dafür sorgst, dass alle Vorgänge des Loaders abgeschlossen sind bevor in der DPR das Application.Run kommt sollte das schon viele Probleme lösen.

Es bleibt die Frage wie man das macht. In deinem Fall würde ich vorschlagen, dass du nachdem du das SplashForm erzeugt hast du es anzeigst und Updatest und dann dort eine Methode aufrufst die den ganzen Ladevorgang abarbeitet. Wenn die Methode fertig ist, dann sollte das Run kommen.

Das sieht dann ungefähr so aus:
Delphi-Quellcode:
Application.Initialize;
Application.MainFormOnTaskbar := True; // <--- zusätzliche Zeile
Application.CreateForm(TForm1, MainForm);
Application.CreateForm(TForm2, SplashForm);
SplashForm.Show;
SplashForm.Update;
SplashForm.LoadAll; // <-- Diese Methode must du Implementieren und mit dem füllen was beim laden alles passieren soll.
// jetzt brauchen wir den Spash-Screen nicht mehr -> Schliessen und aufräumen
SplashForm.Close;
SplashForm.Free;
Application.Run;
zur zweiten Frage:

Diese Zeile sorgt dafür, dass ab Vista dein MainForm nicht nur als Symbol erscheint sondern wenn du drüber fährst auch in dem Kleinen Vorschaufenster des MainForm angezeigt wird. Diese Funktionalität gibt es erst seit Delphi 2007 somit können das die Turbos (die auf Delphi 2006 aufbauen) nicht.

Per Compilerschalter der die Version abfragt kannst du dafür sorgen, dass du die Zeile drinne lassen kannst und in beiden Umgebungen den selben Quelltext behalten kannst.
Du kannst es im Prinzip selber machen mit der Liste der Versionen für die Compiler.
Delphi 1 = VER80
....
Delphi2007 = VER190
....
Die jedi.inc löst genau alle diese Versionen auf in "schön" lesbare Namen z.B. hier zu finden JEDI - JCL
Dadurch sieht Dein Projekt dann so aus:
Delphi-Quellcode:
{$I jedi.inc} // sorgt dafür, dass die Datei verwendet wird

{$IFDEF DELPHI2007_UP}
Application.MainFormOnTaskbar := True; // <--- zusätzliche Zeile nur für Delphi 2007 und höher
{$ENDIF}
Du brauchst nicht die ganze JCL auf beiden Rechnern. Eigentlich nur die jedi.inc in Deinem Projektverzeichnis. Aber ich weiße noch auf die Lizenzbedingungen hin. Diese sollte man ja vor allem bei Kommerziellen Projekten vorher immer prüfen

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat