![]() |
Dialog während Aufgabe anzeigen
Hallo Delphianer,
schlagt mich nicht, ich hätte gern gesucht, mir ist nur nicht klar, nach was! ;-) Folgendes, eigentlich Standard-Problem: Ich Starte eine Aufgabe, in meinem Fall eine ganze Menge Dateien Scannen. Während des Scanns soll ein Dialogfeld angezeigt werden, meinetwegen mit Fortschrittsbalken, und, wenn der Scan fertig ist, schließt sich ds Dialogfeld wieder automatisch. Ich suche einen Lösungsansatz, der auch der OOP entspricht. Wie geht das: Timer, Ereignissteuerung, oder viel einfacher? Eine Multi-Thread-Lösung macht hier keinen sinn, bevor die Dateien nämlich nicht gescannt sind, kann man sowieso nicht weiterarbeiten. ;-) Und wer macht die Kommunikation zwischen Programm und dem Dilogfeld? Also fragt das Modale Form mittels Timer ab, wieviele Dateien schon gescannt sind, oder sagt der Scan dem Formular bescheid ... Hiiilfe! ;-) Bitte um Hilfe! Marco |
Re: Dialog während Aufgabe anzeigen
Anzeigeformular mit Fortschrittsbalken läuft in etwa so ab:
1. Bedarf ermiiteln (Anzahl Scans ...) 2. Anzeigeformular erzeugen, aufrufen ... 3. Vorgang (Scan) beginnen 4. Anzeigeformular.Fortschrittsbalken aktualisieren je nach Fortschritt 5. Anzeigeformular schliessen bei Vorgang Ende |
Re: Dialog während Aufgabe anzeigen
Zitat:
|
Re: Dialog während Aufgabe anzeigen
Du könntest eine Form modal anzeigen lassen. Da die Scans i.d.R. rekursiv ablaufen weißt du ProgressBar.Max erstmal nicht. Um diesen Wert zu bekommen könntest du zunächst einen Initialisierungsdurchlauf machen in dem du nur die Ordner zählst. Währenddessen zeigst du auf einem Label "Initialisiere..." an. Wenn der Durchlauf fertig ist setzt du ProgressBar.Max auf die Anzahl der gefundenen Ordner und startest im Anschluss den richtigen Scan und inkrementierst hier nach den durchsuchten Ordnern. Da kann bestimmt noch viel optimieren. Einen Abbrechen-Button könntest du über eine globale bool'sche Variable lösen: if bAbbruch then ... Das musst du dann halt in deiner Scan-Routine mit einbauen.
@rote Kasten: :hi: HTH Gruß -- |
Re: Dialog während Aufgabe anzeigen
Hallo Leuts,
Erstmal vielen Dank für die raschen und sehr hilfreichen Antworten - also einfacher, als ich gedacht hatte. ;-) Ich wollte nur nicht wieder in meine Nicht-OOP-Weise verfallen. ;-) Aber eine grundsätzliche Frage habe ich doch noch: Wo liegt der Sinn, bei meinem Beispiel der Multi-Threading-Fähigkeit, weil: Dialogfeld anzeigen, Scannen und während des scans den Balken aktualisieren, Ende scan und Ende Formular. Klar sind es, streng genommen, zwei dinge. Aber, bis nicht alles gescannt ist, kann der User mit dem Programm ohnehin nix tun. Es geht mir hier nicht um Sinn oder Unsinn, ich will's einfach verstehen. Vielen Dank und viele Grüße Marco |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz