AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Splashscreen *schnell* anzeigen
Tutorial durchsuchen
Ansicht
Themen-Optionen

Splashscreen *schnell* anzeigen

Ein Tutorial von uligerhardt · begonnen am 26. Mär 2010 · letzter Beitrag vom 26. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von uligerhardt
uligerhardt
Registriert seit: 19. Aug 2004
Hallo zusammen!

Wir haben unserer Anwendung letzthin einen Splashcreen spendiert. Wenn man sie jetzt lokal startet, kommt selbiger sofort hoch und die Anwendung initialisiert sich, während der Benutzer abgelenkt ist.

Nun wollen unsere Anwender des Exe gern auf einem Netzlaufwerk liegen haben, obwohl es mittlerweile gute 10MB hat. Und dann dauert es nach dem Doppelklick aufs App-Icon leider einige Sekunden, bevor der Splashscreen zu sehen ist - vermutlich weil Windows erst mal die komplette Anwendung über's Netz laden willen, bevor es mit der Ausführung anfängt.

Habt ihr Ideen, wie ich den Splashscreen schneller auf den Schirm kriege? Ein kleines Starter-Exe mit dem Splashscreen schreiben, das die "eigentliche" Anwendung als Exe oder DLL lädt? Oder kann man Teile der "großen" Exe irgendwie markieren, dass sie "später" geladen werden können? Zu dem Problem hab ich irgendwie nichts gefunden, obwohl es zum Thema Splashscreen ja viel zu lesen gibt.

Ciao,
Uli.
 
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#2
  Alt 26. Mär 2010, 14:45
ich würde die Lösung mit der Starter-App favorisieren und dann die EXE nachladen oder direkt vom Netz ausführen. Windows lädt die ja dann nach und startet die dann.

Bernhard
Bernhard
  Mit Zitat antworten Zitat
Tryer
 
#3
  Alt 26. Mär 2010, 14:46
Wirklich sinnvoll ist so ein Splashscreen ja nicht, immerhin vergrößert er nur das Volumen der zu ladenden Daten.. Geschmacksache.
Die "Starter - Exe" ist der richtige Ansatz, es stellt sich aber die Frage ob nicht sowieso Teilfunktionen in Dll´s ausgelagert werden können die dann erst bei Bedarf dynamisch nachgeladen werden. Dann ständen die nötigen Grundfunktionen viel schneller zur Verfügung.

Grüsse, Dirk
  Mit Zitat antworten Zitat
Dezipaitor

 
Delphi 7 Professional
 
#4
  Alt 26. Mär 2010, 15:26
Genau, eine kleine StarterEXE, die CreateProcess aufruft und mit WaitForInputIdle() solange wartet (und den Splash) anzeigt, bis die Anwendung gestartet ist.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

 
Delphi XE2 Professional
 
#5
  Alt 26. Mär 2010, 15:32
Zitat von Tryer:
Wirklich sinnvoll ist so ein Splashscreen ja nicht [...]
Aber eine Anwendung zu starten, die eben nun mal länger braucht, und es passiert einfach gar nichts, ist für den Benutzer auch ein wenig verwirrend. Hat er nicht richtig geklickt? Ist die Anwendung abgestürzt?


Zitat von uligerhardt:
Oder kann man Teile der "großen" Exe irgendwie markieren, dass sie "später" geladen werden können?
Jain - jedenfalls nicht so einfach wie es sich bei deiner Frage anhört. Bei Anwendungen die man häufig startet und beendet machen solche Optimierungen sicher Sinn, sollte die Anwendung aber dauernd laufen und so nur einmal pro Windows-Sitzung gestartet werden, ist eine etwas längere Ladezeit wohl zu verschmerzen. Meine Meinung
Chris
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

 
Delphi 2007 Professional
 
#6
  Alt 26. Mär 2010, 15:34
Das ging ja schnell.

Danke erstmal für die Antworten. Sieht so aus, als wäre die Starter-Exe der Weg. Wenn ich so drüber nachdenke, könnte man da auch gleich einen Update-Check mit einbauen, der eine lokale Kopie der großen Exe mit einem Original im Netz abgleicht. Dann hätte man vielleicht das Beste aus beiden Welten - einfache Installation: eine Exe an zentrale Stelle kopieren - und "lokale Geschwindigkeit". Hmmm, schon wieder eine Baustelle mehr...
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#7
  Alt 26. Mär 2010, 15:35
Zitat:
Genau, eine kleine StarterEXE
Am besten noch als nonVcl um die Daten.- bzw. Dateigrösse noch zu minimieren.
Matti
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

 
Delphi 2007 Professional
 
#8
  Alt 26. Mär 2010, 15:41
Zitat von Deep-Sea:
Zitat von Tryer:
Wirklich sinnvoll ist so ein Splashscreen ja nicht [...]
Aber eine Anwendung zu starten, die eben nun mal länger braucht, und es passiert einfach gar nichts, ist für den Benutzer auch ein wenig verwirrend. Hat er nicht richtig geklickt? Ist die Anwendung abgestürzt?
Genau.

Zitat von Deep-Sea:
Zitat von uligerhardt:
Oder kann man Teile der "großen" Exe irgendwie markieren, dass sie "später" geladen werden können?
Jain - jedenfalls nicht so einfach wie es sich bei deiner Frage anhört.
Meinst du jetzt zerlegen in DLLs/Packages (wie es Tryer schon angesprochen hat)? Das ist eine Idee, die wir ganz unabhängig von Ladegeschwindigkeit etc. immer mal wieder rumwälzen. Das hat aber halt so seine Tücken.

Zitat von Deep-Sea:
Bei Anwendungen die man häufig startet und beendet machen solche Optimierungen sicher Sinn, sollte die Anwendung aber dauernd laufen und so nur einmal pro Windows-Sitzung gestartet werden, ist eine etwas längere Ladezeit wohl zu verschmerzen. Meine Meinung
Ja, aber wie du selbst schriebst:
  • Benutzer klickt doppelt.
  • Nix passiert.
  • User klickt nochmal doppelt.
  • Chaos.
Uli Gerhardt
  Mit Zitat antworten Zitat
Tryer
 
#9
  Alt 26. Mär 2010, 15:55
Ich würde den Splashscreen halt weglassen, die Starter-Exe mit "OneInstance" versehen um den Mehrfachstart zu vermeiden und Cursor auf cr_hourglass setzen.
Mich persöhnlich nerven die Splashscreens wie z.B. bei Gimp, wo ich dann 2 Minuten zuschauen kann das 10.000 Schriften und Effekte geladen werden die ich für das was ich vor habe gerade nicht brauche

Grüsse, Dirk
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

 
Delphi 12 Athens
 
#10
  Alt 26. Mär 2010, 16:11
Also 10MB übers LAN sind bei heute gängigen Übertragungsraten (100-1000 MBit/s) eigentlich kein Problem (zumindest keines von einigen Sekunden), schließlich cached der Server ja auch. Eventuell funkt dir ja auch nur der Virenscanner dazwischen.
Uwe Raabe
  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 05:44 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