AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Verzeichnisüberwachung mit TDirectoryWatcherBuilder
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisüberwachung mit TDirectoryWatcherBuilder

Ein Thema von slemke76 · begonnen am 26. Okt 2021 · letzter Beitrag vom 30. Okt 2021
Antwort Antwort
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#1

Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 26. Okt 2021, 21:13
Hallo zusammen,

ich würde gerne ein Verzeichnis überwachen und bin gerade dabei, ein wenig Prototyping zu machen.

Während ich mit den Komponenten von Cromis auf Anhieb geklappt hat, stehe ich offensichtlich mit den Komponenten von Wosi (https://github.com/Wosi/DirectoryWatcher) auf Kriegsfuß...

Ich habe mir eine (eigene kleine) Demo als VCL zusammengeschoben, die an diversen Fehlern innerhalb der DirectoryWatcherBuilder.pas (aus dem git Repo) hängen bleibt:
- Bezeichner erwartet, aber 'CLASS' gefunden
- "Deklaration von 'New' unterscheidet sich von vorheriger Deklaration
- diverse Folgefehler (vermute ich)

Hier die Stelle aus DirectoryWatcherBuilder.pas, an der es hängt - sowohl unter XE8 als auch unter 10.4 getestet:
Delphi-Quellcode:
unit DirectoryWatcherBuilder;
[...]
class function TDirectoryWatcherBuilder.New: IDirectoryWatcherBuilder;
begin
  Result := TDirectoryWatcherBuilder.Create;
end;
Mein Sample-Code
Delphi-Quellcode:
procedure TfMain.btnStartClick(Sender: TObject);
begin
  DirectoryWatcher := TDirectoryWatcherBuilder
                        .New
                        .WatchDirectory(eDirectoryName.Text)
                        .Recursively(cbWatchSubdirectories.Checked)
                        .OnChangeTrigger(OnFileEvent)
                        .Build;

end;

Ich steh irgendwie auf dem Schlauch, kann mir jemand "aufs Pferd helfen" ? Danke...

Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#2

AW: Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 26. Okt 2021, 22:23
Zur besagten Komponente habe ich keine Antwort.

Als Typ kann ich Dir nur das Stichwort ReadDirectoryChangesW mitgeben. Dazu findest Du hier im Forum ein paar Tipps.
Allenfalls kannst Du das gewünschte Verhalten relativ einfach erreichen.
Roland
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.341 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 27. Okt 2021, 05:55
Die Komponente ist vor allem für Lazarus geschrieben. Deshalb wird dort auf das Define WINDOWS geprüft, aber unter Delphi wäre es MSWINDOWS. Dadurch ist die type-Sektion über dem Fehler leer. Entweder du fügst in der Unit DirectoryWatcherBuilder auch noch ein IFDEF für MSWINDOWS hinzu oder veroderst es entsprechend oder du packst ganz oben das hin:
Delphi-Quellcode:
{$IFDEF MSWINDOWS}
{$DEFINE WINDOWS}
{$ENDIF}
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#4

AW: Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 30. Okt 2021, 18:20
Hallo zusammen,

vielen Dank für eure Antworten!

[...] das Stichwort ReadDirectoryChangesW mitgeben.
Ja, darüber bin ich hier schon mehrfach gestoplert und habe auch eine Demo mit den Cromis-Komponenten gefunden, die auch bereits läuft. Die nutzt auch ReadDirectoryChangesW.

Entweder du fügst in der Unit DirectoryWatcherBuilder auch noch ein IFDEF für MSWINDOWS hinzu oder veroderst es entsprechend oder du packst ganz oben das hin[...]
Danke für den Input . Ich habe die Units entsprechend angepasst und damit kommt ich jetzt auch einen Schritt weiter.

Die Komponente ist vor allem für Lazarus geschrieben.
Ich bin mir gar nicht sicher, ob ich die unter Delphi überhaupt vernünftig ans laufen bekomme - ich finde die erst einmal Charmant, weil die auch Linux und MacOS abdecken.

Aber - auch wenn das jetzt vom Thread Thema abweicht - mir fehlt jetzt für Delphi die Unit "FGL" - das sind wohl "Free Pascal Generic Lists".
Gibt es dafür einen "Ersatz" in Delphi (nichts gefunden...?) oder müsste man das ganze komplett für Delphi anpassen?

Update:
Ich habe das hier https://sourceforge.net/projects/fre.../Source/3.2.2/ gefunden, aber dumme Frage - wie binde ich .pp Units in Delphi ein? Stehe schon wieder auf dem Schlauch...
Bei dem Ding lerne ich richtig was

Schönes WE!
Sebastian

Geändert von slemke76 (30. Okt 2021 um 18:36 Uhr)
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 30. Okt 2021, 19:49
Zitat:
wie binde ich .pp Units
??? in *.pas umbennen?

vorher in einen seperaten(projekt-gültigen) Ordner kopieren.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.341 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Verzeichnisüberwachung mit TDirectoryWatcherBuilder

  Alt 30. Okt 2021, 20:47
Ich bin mir gar nicht sicher, ob ich die unter Delphi überhaupt vernünftig ans laufen bekomme - ich finde die erst einmal Charmant, weil die auch Linux und MacOS abdecken.

Aber - auch wenn das jetzt vom Thread Thema abweicht - mir fehlt jetzt für Delphi die Unit "FGL" - das sind wohl "Free Pascal Generic Lists".
Gibt es dafür einen "Ersatz" in Delphi (nichts gefunden...?) oder müsste man das ganze komplett für Delphi anpassen?
Das macht anders keinen Sinn. Ja, das musst du anpassen.

Ich habe es einmal so weit angepasst, dass es kompiliert (aber nicht getestet). Nicht schön, das kann man besser für beide Compiler machen, aber ich kann da jetzt nicht so viel schauen. Vor allem müsste ich es dann auch mal unter Lazarus testen, das kann ich gerade nicht.
Angehängte Dateien
Dateityp: zip EventTriggerThread.zip (4,4 KB, 8x aufgerufen)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 12:36 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