AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Eure Meinung zu einem Loader, was muss er haben?
Thema durchsuchen
Ansicht
Themen-Optionen

Eure Meinung zu einem Loader, was muss er haben?

Ein Thema von BAMatze · begonnen am 9. Mär 2009 · letzter Beitrag vom 9. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Eure Meinung zu einem Loader, was muss er haben?

  Alt 9. Mär 2009, 06:47
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 9. Mär 2009, 06:49
Such mal nach Splash
Markus Kinzler
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

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

  Alt 9. Mär 2009, 06:55
cool hab das Tut gefunden hier in DP, dank dir.
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#4

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

  Alt 9. Mär 2009, 07:57
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.
Angehängte Dateien
Dateityp: zip splash_940.zip (367,6 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

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

  Alt 9. Mär 2009, 08:33
Die Eigenschaft MainFormOnTaskbar ist wohl eine neue Eigenschaft von TApplication in den neueren Delphi Versionen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
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
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
110 Beiträge
 
Delphi 11 Alexandria
 
#7

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

  Alt 9. Mär 2009, 08:44
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;
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#8

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

  Alt 9. Mär 2009, 08:52
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 )

Dank euch
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

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

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

  Alt 9. Mär 2009, 09:06
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 )
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

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
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#10

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

  Alt 9. Mär 2009, 09:43
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 Uhr.
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