AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Progressbar während Objekterzeugung aktualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Progressbar während Objekterzeugung aktualisieren

Ein Thema von Echtet · begonnen am 14. Jul 2011 · letzter Beitrag vom 18. Jul 2011
Antwort Antwort
Seite 2 von 2     12   
Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#11

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 15. Jul 2011, 11:38
Hallo,

Zitat:
Ansonsten muss sich eben jede Komponente melden, wenn sie fertig ist.
Das hört sich interessant an. Leider haben die Komponenten keine OnCreate-Ereignis, in das ich mich einklinken könnte. Hat jemand einen Tip zu dieser Variante?

Zitat:
Und wie soll eine Komponente etwas anzeigen können, wenn sie noch gar nicht existiert?
Ich vermute mal, dass sich hier ein Missverständnis eingeschlichen hat (oder ich verstehe es nicht):
1. Ich erzeuge ein Login-Formular.
Im Login-Formular befindet sich die Progressbar (momentan noch deaktiviert)
2. Ich prüfe User und kennwort ab
3. Ist beides Korrekt, wird die Progressbar aktiviert und sie sollte "loslaufen"
4. Nun wird das Hauptformular (mit den vielen Komponenten erzeugt und mit Show angezeigt)
5. Während diese Erzeugens des Hauptformulars ändert sich leider nicht die Fortschrittsanzeige der Progressbar.

Zitat:
Stichwort: Splashscreen
Das mit dem SplashScreen muss ich mir mal genauer anschauen. Ich dachte bisher, ein Splashscreen dient nur dazu, vor dem Start des Programms "die wartezeit zu versüßen". Bei mir läuft das Programm ja bereits (in Form der Login-Maske) und der SplashScreen müsste nun zwischen Login-Maske und Hauptformular erscheinen. Ist das so machbar?

Danke für die vielen Hinweise!
Gruß,
Echtet
Thimo Echtermann
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 15. Jul 2011, 11:59
Hier ist erklärt, dass Dein Vorhaben im MainThread nicht so einfach umzusetzen ist.

Wenn es um wenige Sekunden nach der Anmeldung geht, würde ich im LoginForm einfach ein nettes Image "bitte warten..." anzeigen.

Für eine laufende ProgressBar müsstest Du diese (die betreffende Instanz) Deinem Mainform übergeben, das diese dann zyklisch hochzählt. Da der Ladefortschritt aber durch Dich schwer zu überwachen ist, wird das wohl schwierig werden.

Ein empfehlenswerter Ansatz für sehr komplexe Formulare kann sein, mit embeded Forms zu arbeiten (oder notfalls mit Frames).
Dadurch erhält man eine übersichtlichere Projektstruktur und Du könntest bei jedem Form, das eingebettet wird, einen Fortschritt darstellen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
sHoXx
(Gast)

n/a Beiträge
 
#13

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 15. Jul 2011, 12:33
oder du machst so nen balken, wie er beim bootvorgang von xp kommt der einfach nur durchläuft und keinen fortschritt anzeigt
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 15. Jul 2011, 12:39
Das ist dann eine ProgressBar im Marguee-Style.
Das Problem ist aber, dass diese still steht, wenn das Programm beschäftigt ist (z.B. weil es ein Formular lädt).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#15

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 15. Jul 2011, 14:26
Hier ein Beispiel...
Angehängte Dateien
Dateityp: zip SplashScreen.zip (3,2 KB, 35x aufgerufen)

Geändert von omata (15. Jul 2011 um 14:38 Uhr)
  Mit Zitat antworten Zitat
Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#16

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 17. Jul 2011, 18:58
Hallo Delphianer,

vielen Dank nochmal für die vielen Tips. Aufgrund der Hinweise zum SpashScreen habe ich mir diese Thematik nochmal näher angeschaut (velen Dank auch an Omata für die beispielhaften Routinen!).

Ich werde wohl aus den TMS-Componenten die Komponente für den SpashScreen verwenden. Damit kann ich einigermaßen die gewünschte Funktionalität abbilden.

Da mir anfangs nicht bewusst war, dass man einen SplashScreen nicht nur zu Programmbeginn einblenden lassen kann, hier mal skizzenhaft mein Vorgehen. Vielleicht hilft es dem einen oder anderen ebenso...

1. Form1 (Login = Hauptformular) wird beim Programmstart automatisch erzeugt.
2. frmMain wird nach korrekter anmeldung aufgerufen.
3. Die Spash-Komponente wird auf dem frmMain abgelegt.
4. Nachdem aus der Form1 der Befehl "Application.CreateForm(TfrmMain, frmMain);" ausgeführt wurde, startet nach kurzer Verzögerung der SpashScreen
5. frmMain wird angezeigt "frmMain.Show"
6. Spash-Komponente wird ggf beendet bzw blendet langsam aus

Gruß,

Echtet
Thimo Echtermann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 18. Jul 2011, 10:11
Naja, aber Moment, wenn das das Problem löst, sind das Problem doch nicht die vielen Komponenten, sondern das was in OnCreate oder OnShow passiert, oder?
Denn die Komponenten sind ja bereits vollständig erzeugt, wenn du in OnCreate ankommt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#18

AW: Progressbar während Objekterzeugung aktualisieren

  Alt 18. Jul 2011, 15:17
Hallo,

deswegen sagte ich ja auch "damit könne ich einigermaßen die Funktionalität abbilden".

Du hast sicherlich recht, dass die Lösung nicht perfekt ist. Ich denke schon, dass die Anzahl der Komponenten eine Rolle spielt, denn diese werden doch mit der Erzeugung des Hauptformulars ebenfalls erst (automatisch mit dem Formular) erzeugt.

Tatsächlich habe ich immer noch eine Wartezeit, bis der SplashScreen angezeigt wird, aber diese ist kürzer als ohne die SpashScreen-Lösung.

Ich bleibe aber weiter dran, ob es ggf. noch weiter verbesserungsmöglichkeiten gibt.

Gruß,
Echtet
Thimo Echtermann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:55 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