Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Directory und Files auflisten (https://www.delphipraxis.net/201661-directory-und-files-auflisten.html)

stifflersmom 16. Aug 2019 18:37

AW: Directory und Files auflisten
 
Wozu ist der Taskstatus? Den zählst Du fix von 0-10.
Aber weiter unten in:

Delphi-Quellcode:
 for j := 0 to High(MainVerz) do
    begin
....
TaskStatus[j] := True;
Davon ganz abgesehen brauchst Du bestimmt nicht soundsoviel tausend Processmessages... Es reicht, immer mal zwischendurch und nicht bei jeder Datei ein Processmessages zu benutzen. Vielleicht ein zusätzlicher Zähler, der alle 50 oder 100 Dateien ausgelöst wird.

Smiley 16. Aug 2019 19:31

AW: Directory und Files auflisten
 
Der TaskStatus ist noch ein Überbleibsel als ich versucht habe mit 2 Tasks bzw. Threads zu arbeiten.
Den ProcessMessages habe ich nur nach jedem Verzeichnis gemacht, damit in der Listbox das Verzeichnis, in dem ich mich gerade befinde, angezeigt wird.
Selbst wenn ich nur ein einziges mal das PrcessMessages aufrufe hängt das Programm schon.
Ist wohl erst seit Windows 10 so, wie ich woanders schon gelesen habe.
Das wäre dann mal ein Grund doch mit Threads zu arbeiten.
Doch die Listbox und das Grid sind nur zum testen, eigentlich sollen die Daten ja in eine Datenbank geschrieben werden.
Da ist dann lediglich das Problem, dass vom Programm dann mal für einige Zeit "Keine Rückmeldung" angezeigt wird.
Habe dann mal versucht Listbox.Refresh aufzurufen in der Schleife, das geht solange gut, bis ein großes Verzewichnis kommt, dann kommt wieder "Keine Rückmeldung".
Wenn alle Verzeichnisse abgearbeitet sind ist alles wieder gut.

p80286 17. Aug 2019 11:39

AW: Directory und Files auflisten
 
Zitat:

Zitat von Smiley (Beitrag 1441715)
Da ist dann lediglich das Problem, dass vom Programm dann mal für einige Zeit "Keine Rückmeldung" angezeigt wird.
Habe dann mal versucht Listbox.Refresh aufzurufen in der Schleife, das geht solange gut, bis ein großes Verzewichnis kommt, dann kommt wieder "Keine Rückmeldung".
Wenn alle Verzeichnisse abgearbeitet sind ist alles wieder gut.

Das ist auch vollkommen normal und richtig. Solange Dein Programm (Mainthread) damit beschäftigt ist die Informationen aus einem Verzeichnis zu holen, schert es sich nicht um die Oberfläche. Oder besser es kann nur eine Sache auf einmal erledigen, da es auch nur einen Thread gibt. Wenn Du mit zwei Threads arbeitest dann kann der Ausleser bei Gelegenheit die Gui informieren wie weit er ist, und die GUI zeigt das dann bei der nächsten Gelegenheit an. Nur wenn über einen längeren Zeitraum keine neue Information gesendet wird, gibt es auch nichts neues zum Anzeigen. Nur das "keine Rückmeldung" taucht nicht auf, da die Gui ja noch arbeitsfähig ist.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Seite 2 von 2     12   

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