AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Rekursive Dateisuche friert Programm ein.
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursive Dateisuche friert Programm ein.

Ein Thema von moori · begonnen am 6. Jul 2003 · letzter Beitrag vom 6. Jul 2003
Antwort Antwort
moori

Registriert seit: 14. Jun 2003
36 Beiträge
 
Delphi 4 Professional
 
#1

Rekursive Dateisuche friert Programm ein.

  Alt 6. Jul 2003, 12:24
Hallo zussammen,

hab ein kleines Problem beim "Rekursiv nach Dateien suchen".
Eigentlich dachte ich, ich hab hier schon mal so eine Frage gefunden, doch ich kann sie jetzt nicht mehr finden.

Ich suche nach Dateien. Code ist dem in der CODE-LIBRARY ähnlich. Auch dort ist das Problem das während der Suche das Programm einfriert. D. h. es werden keine Events ausgelöst und das Formular ist "tod". Hat mich eigentlich nie gestört, aber ich möchte einen "Abbrechen-Button" verwenden.

Wie kann ich einen "Abbrechen-Button" verwenden, um aus der Prozedure
GetFilesInDirectory('C:\','*.*',listbox1.items,checkbox1.checked); auszusteigen.

Kann mir jemand einen Tipp geben.

Dank im Voraus.

Gruss Moori
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 6. Jul 2003, 12:45
pack das ganze in einen Thread und beende Thread dann über den "Abbrechen" Button.
David F.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 6. Jul 2003, 13:16
Moin Moori,

Du könntest auch einfach einmal Application.ProcessMessages in die Suchschleife legen (den Source für die Funktion hast Du ja), und dann immer hinter dem Rekursiven Aufruf der Funktion eine Abfrage nach der Abbruchbedingung einbauen.
Bedingung erfüllt: Exit

Die Bedingung wird dann durch den Abbruch Button gesetzt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
moori

Registriert seit: 14. Jun 2003
36 Beiträge
 
Delphi 4 Professional
 
#4

Application.ProcessMessage funzt

  Alt 6. Jul 2003, 14:42
Hallo Christian Seehase und mirage228,

Danke für eure Hilfe.

Ich habs mit dem Thread versucht, aber es hat nicht wirklich funktioniert. Ich erhalte keine Fehler, aber trotzdem "friert" mein Formular ein.

Das mit der
Application.ProcessMessages funktioniert. Obwohl ich nicht genau weiss was das macht. Auf jedenfall habe ich während der "Datei-Suche" zugriff auf mein Formular. Das Problem mit der "Verlangsamung" der Suchfunktion hab ich auch ganz leicht umgehen können.

Danke für eure Hilfe.

Gruss Moori
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 6. Jul 2003, 14:45
Moin Moori,

wenn Du das Durchsuchen der Verzeichnisse in eine Thread auslagerst kann das Programm eigentlich nicht einfrieren.
Da müsstest irgendwo ein Fehler sein.

Application.ProcessMessages sorgt dafür, dass anstehende Windows Botschaften verarbeitet werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:13 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