Anzeige bleibt in rekursiver Funktionen hängen

12/01/2010 - 10:04 von Klaus Trapp | Report spam
Hallo,

eine Routine durchlàuft einen Ordner und seine Unterordner rekursiv,
wobei die Namen der Dateien der jeweiligen Ordner in der Statuszeile
angezeigt werden. Das funktioniert i.a. gut.
Bei sehr umfangreichen Verzeichnissen hört die Anzeige in der
Statuszeile an unvorhersehbarer Stelle auf, d.h. ein Dateiname bleibt
stehen, wàhrend die eigentliche Verarbeitung der Routine weiterlàuft.
Paralle dazu setzt auch die Anzeige eines Zàhlers in einem Label aus.
Wie das?

Hier das Schema:
Formular-Button instaziert Klasse und übergibt Ordnernamen.
Klasse startet Funktion, die die Dateien des Ordner durchlàuft.
Dateinamen werden per Event an das Formular gegeben
und vom Formular in der Statuszeile angezeigt
Statusbar1.Panels(1).Text = f.Name
und die Datei wird irgendwohin kopiert.
Die Funktion ruft sich anschließend selbst über alle Unterordner
des Ordners auf.
Klasse wird terminiert und eine Summe/Schlussmeldung in der Statuszeile
angezeigt.

Die Schlussmeldung funktioniert wieder. Bis dahin bleibt ein Dateiname
in der Statuszeile stehen. Es sieht also so aus, dass die Anzeige in der
Statuszeile und im Label hàngen bleibt, wàhrend die eigentliche
Verarbeitung weitergeht.

Die Verschachtelungsebenen sind nicht allzu tief (maximal 6) und beim
mehrmaligen Start mit dem gleichen Ordner bleibt die Anzeige an
unterschiedlichen Stellen hàngen.

Gruß aus Köln
Klaus

www.trappdata.de
 

Lesen sie die antworten

#1 Christian Zimmermann
12/01/2010 - 10:42 | Warnen spam
Hallo Klaus,

Klaus Trapp schrieb:

eine Routine durchlàuft einen Ordner und seine Unterordner rekursiv,
wobei die Namen der Dateien der jeweiligen Ordner in der Statuszeile
angezeigt werden. Das funktioniert i.a. gut.
Bei sehr umfangreichen Verzeichnissen hört die Anzeige in der
Statuszeile an unvorhersehbarer Stelle auf, d.h. ein Dateiname bleibt
stehen, wàhrend die eigentliche Verarbeitung der Routine weiterlàuft.



Du kannst die Steuerelemente per .Refresh (Label.Refresh, Me.Refresh)
updaten. Dann wird/werden das/die Steuerelement/e neu gezeichnet.

Paralle dazu setzt auch die Anzeige eines Zàhlers in einem Label aus.
Wie das?



s. o.

Hier das Schema:
...

Die Schlussmeldung funktioniert wieder. Bis dahin bleibt ein Dateiname
in der Statuszeile stehen. Es sieht also so aus, dass die Anzeige in der
Statuszeile und im Label hàngen bleibt, wàhrend die eigentliche
Verarbeitung weitergeht.



Ja, weil VB hier nun wieder Zeit bekommt, die Forms mit Inhalt zu zeichnen.

Gruß

Christian

Ähnliche fragen