
Verzeichnis überwachen
-
- Beiträge: 42
- Registriert: Di 22. Feb 2022, 12:19
- OS, Lazarus, FPC: Window 11
- CPU-Target: 64Bit
- Wohnort: Cloppenburg
Re: Verzeichnis überwachen
So ein Mist, ich hab doch gestern einen unvollständigen ScreenShot geschickt 

- Dateianhänge
-
- ScreenShot.png (25.73 KiB) 1369 mal betrachtet
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Verzeichnis überwachen
Ich habe das mal heruntergeladen. Es kompiliert auch. Aber beim Programmstart bekomme ich eine Access Violation in der Datei DirectoryWatcherThread.Windows.pas in Zeile 129 bei der AnweisungJorg3000 hat geschrieben: Sa 23. Nov 2024, 16:11 Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
This is an abstraction layer for
- ReadDirectoryChangesW on Windows
- FSEvent on Mac OS
- inotify on Linux
Code: Alles auswählen
EventArray[1] := Integer(TermEvent.Handle^);
Hat jemand eine Idee woher das kommt?
-
- Beiträge: 945
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Verzeichnis überwachen
Ich frage mich, wie das im Ansatz funktionieren sollte, da TEvent.Handle das Handle selbst als Pointer (in FPC) oder NativeUInt (in aktuellen Delphis) ist. Da das EventArray einfach nur ein Feld von THandle ist, müsste es eigentlich := THandle(TermEvent.Handle) sein. 
FPC Compiler Entwickler
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Verzeichnis überwachen
Du hast recht. Wenn ich Handle direkt als Integer übertrage, funktioniert es. Weshalb ist das Handle dann aber als Pointer deklariert?PascalDragon hat geschrieben: Di 29. Apr 2025, 21:30 Ich frage mich, wie das im Ansatz funktionieren sollte, da TEvent.Handle das Handle selbst als Pointer (in FPC) oder NativeUInt (in aktuellen Delphis) ist. Da das EventArray einfach nur ein Feld von THandle ist, müsste es eigentlich := THandle(TermEvent.Handle) sein.![]()
Wenn ich mir TEventObject.Create anschaue, dann wird BasicEventCreate aufgerufen, welches laut der FPC Doku als deprecated eingestuft ist und durch RTLEventCreate ersetzt werden sollte. Dieses liefert aber auch ein PRTLEvent Ergebnis. Wieder ein typenloser Zeiger.