Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eure Meinung zu einem Loader, was muss er haben? (https://www.delphipraxis.net/130472-eure-meinung-zu-einem-loader-muss-er-haben.html)

BAMatze 9. Mär 2009 06:47


Eure Meinung zu einem Loader, was muss er haben?
 
Hallo an euch alle und einen guten Start in die neue Woche.

Habe mal eine Frage an euch, zu eurer Meinung von einem Loader. Also am Freitag wurde mir bei einem Problem hier geholfen, was leider eine große Umstellung in meinem Programm führt, die aber für die Funktionalität von nöten ist.

Bisher: Habe ich eine Hauptform, die eine rein unterstützende Funktion hat und eigentlich meine Arbeit überwachen sollte. Sie dient als Loader und Protokolform (beschreibt Tmp-Datei mit einigen Informationen, die den Ablauf des Programms betreffen) Diese Form erzeugt einen Arbeitshreat, der zuerst alle Perepherie-Geräte (die durch das Programm gesteuert werden) initialisiert und dabei feststellt, welches ist wirklich angeschlossen und einsatzbereit. Wenn dies geschehen ist, wird die Bedien-Form geladen.

Wie wird umgestellt: Es hat sich gezeigt, dass ich für meine weitere Arbeit die Bedienform zur Hauptform umbauen muss. Jetzt stehe ich eigentlich vor einer ziemlich schwierigen Frage: Wie baue ich sinnvoll meine Loaderform um? Ich denke in der heutigen Zeit ist sowas schon von Nöten, da das initialisieren der Perepherie-Geräte eine ganze Weile benötigt. Aber leider verliert diese bisher in meiner Vorstellung die komplette Existenzberechtigung.

Möchte hier einmal eure Meinung hören, was in einen Loader gehört? Ist es wirklich nur eine rein visuelle Kopmonete oder legt ihr dort bestimmte Funktionalitäten rein?

Vielen Dank BAMatze

mkinzler 9. Mär 2009 06:49

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Such mal nach Splash

BAMatze 9. Mär 2009 06:55

Re: Eure Meinung zu einem Loader, was muss er haben?
 
cool hab das Tut gefunden hier in DP, dank dir.

BAMatze 9. Mär 2009 07:57

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok hab mir jetzt mal das Tut angeschaut und abgearbeitet. Komischer Weise scheint mir das Programm nicht wirklich das zu liefern, was ich eigentlich kommen sollte. Denke mal hab einen kleinen Fehler drin, den ich mir aber noch nicht erklären kann.

Also folgendes möchte ich gern erreichen: Die SplashForm soll gezeigt werden, bis das Hauptprogramm geladen ist, dann schließt es sich. (Folgende Sachen sind erstmal nebensächlich: Sichtbarkeit der Hauptform, Hauptform disabled beim laden, ...)

Was ist der derzeitige Stand: Die SplashForm terminiert sich nicht, sondern bleibt im Hintergrund. Ich weiß ich kann sie auch einfach in der MainForm schließen, die Frage ist nur, ob das so wirklich gedacht ist? Denn im Tut steht, dass sie die Splashform eigentlich selber terminieren soll. Weiterhin kann die Splash Form nicht über das "X" geschlossen werden.

Eine 2. kleine Frage: in der Projekt-Datei des Tut-Erstellers stehen folgende Zeilen:
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TfrmSplash, frmSplash);
  Application.Run;
end.
Mich irritiert etwas, dass meine Projekt-Datei so aussieht:
Delphi-Quellcode:
  Application.Initialize;
  Application.MainFormOnTaskbar := True; // <--- zusätzliche Zeile
  Application.CreateForm(TForm1, MainForm);
  Application.CreateForm(TForm2, SplashForm);
  Application.Run;
Wo kommt diese Zeile her? Hab auch schon bemerkt, dass ich bei der Free-RAD-Version 2006 zu Hause und der RAD2007 Vollversion ein Problem genau an der Stelle auftritt. (Muss diese Zeile dann auskommentieren, dann laufen die Programme zu Hause).

Hier mein Dateien, damit ihr das Problem mal anschauen könnt.

Luckie 9. Mär 2009 08:33

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Die Eigenschaft MainFormOnTaskbar ist wohl eine neue Eigenschaft von TApplication in den neueren Delphi Versionen.

ChrisE 9. Mär 2009 08:42

Re: Eure Meinung zu einem Loader, was muss er haben?
 
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

Zoot 9. Mär 2009 08:44

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Ich würde das Formular noch selbst erstellen:
Delphi-Quellcode:
Application.Initialize;
SplashForm:=TForm2.Create(Application);
SplashForm.Show;
SplashForm.Update;
..... InitIrgendwas;....
Application.MainFormOnTaskbar := True; // <--- zusätzliche Zeile
Application.CreateForm(TForm1, MainForm);
SplashForm.Close;
SplashForm.Free;
Application.Run;

BAMatze 9. Mär 2009 08:52

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Dank euch wiedermal, hab hier auch erstmal ein gutes Beispiel gefunden von MaBuSE, welches ein Splash einblendet. Dies funzt bei mir und werde mich mal mit dem Beispiel auseinander setzen. Hab ja jetzt eine Menge Anregungen und werde mich jetzt mit dem Umbau meines Programmes auseinandersetzen. Da ergeben sich denke ich mal auch noch einige Fragen. Ist ja doch schon ein etwas größeres Projekt geworden, was umgearbeitet werden muss. (Diese Relation "größeres" ist bitte im Kontext zu verstehen, dass ICH persönlich noch nie ein so großes Projekt erstellt habe. Ich weiß, für einige ist der Umfang ehrer als "klein" zu bezeichnen und an einem Nachmittag erstellt :lol: :lol: )

Dank euch

ChrisE 9. Mär 2009 09:06

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

Zitat von BAMatze
....(Diese Relation "größeres" ist bitte im Kontext zu verstehen, dass ICH persönlich noch nie ein so großes Projekt erstellt habe. Ich weiß, für einige ist der Umfang ehrer als "klein" zu bezeichnen und an einem Nachmittag erstellt :lol: :lol: )

Größer ist für jeden dass, was eben größer ist als bisher. Und ein Nachmittag ist sicher auch übertrieben :-)

Viel Erfolg beim ausprobieren. Das wird schon :cheer:

Gruß, Chris

BAMatze 9. Mär 2009 09:43

Re: Eure Meinung zu einem Loader, was muss er haben?
 
Ich frag hier jetzt einfach nochmal, weiß nicht, ob ich dafür noch einen seperaten Threat machen muss. Wenn ja sagt es mir kurz und ich erstelle ihn.

Ich lasse meinen Splash jetzt erstellen und setze die Transparenz auf 180 von 255. D.h. der Loader ist noch leicht transparent aber sichtbar. Würde jetzt aber gerne die Transparenz der Schrift auf 255 setzen. Ist dies in meiner LoaderForm möglich?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz