Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
10. Jul 2020
Der Timer feuert aber nicht, solange der Mainthread beschäftigt ist.
(Kannst Du mit Sleep oder einer länger laufenden Schleife testen.)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
10. Jul 2020
Steuerst Du jedes erzeugen/laden selbst?
Dann würde ich wieder bei einem Label oder Panel landen...
Angenommen Du lädst 10 Komponenten, dann
Label.Caption := '1/10';
Label.Update;
Dokument1Laden;
Label.Caption := '2/10';
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
10. Jul 2020
Wie lange ist denn die Ladezeit (bzw. die Hänge-Dauer des Formulars)?
- für ein Dokument?
- für alle n Dokumente?
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
9. Jul 2020
Wenn das Holen der Daten 90% der Zeit braucht und das Erzeugen und füllen der Controls 10%, dann könnte es Sinn machen, das Holen der Daten in einen Thread auszulagern.
Der einzige Vorteil wäre allerdings, dass die Anwendung reaktiv bleibt und irgendein Pinökel da irgendwie rumrödeln kann.
Im Ergebnis hätte man eine Rödel-Anzeige und irgendwann - schwupps - werden die Controls erzeugt.
Das...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
8. Jul 2020
Ok, das wird in einem Thread schlecht gehen (außer Daten zu sammeln und zu puffern, um die Controls dann in einem Rutsch erzeugen zu können).
Um welche Zeitspannen handelt es sich denn?
Ggf. wäre einfach ein statischer Splashscreen sinnvoller, der auf die mögliche Zeitspanne hinweist. Dann müssen keine Klimmzüge gemacht werden, damit ein grüner Balken hin und her zuckelt, was ohnehin nicht...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by stahli,
8. Jul 2020
Korrekter Weise kannst Du die langwierige Aufgabe nur in einen Thread auslagern und die Darstellung durch eine Schleife im Hauptthread aktualisieren.
Mit Application.ProcessMessages kannst Du den Effekt zwar auch erreichen, aber das ist eher unsauber und kann u.U. zu Problemen führen.