So, das hat leider etwas länger gedauert.
Ich habe ein kleines Testprojekt mit einer Exe und einer
DLL erstellt. Beide sind auf die zwingend nötigen Codezeilen zusammengeschrumpft, also bitte nicht wundern, wenn einige Zeilen sinnlos erscheinen.
Verzeichnisstruktur:
000DeleteFolders = Projektdateien
000DeleteFolders\
dcu = wie der Name schon sagt ...
DCU-Verzeichnis
000DeleteFolders\source = alle *.pas und *.dfm Dateien
000DeleteFolders\binary = alle fertigen Kompilate
000DeleteFolders\binary\Import_Folder = Das Import-Verzeichnis, aus dem alle Unterverzeichnisse gelöscht werden sollen
Der Ablauf: Die
DLL überwacht den Import-Ordner und meldet der Exe importierbare Dateien per Callback, welche den Import-Button enabled. Beim Click auf den Import-Button ruft die Exe die Liste der Dateien aus der
DLL ab und importiert (zu Testzwecken: löscht) alle Dateien. Der Clear-Button wird enabled. Ein Klick darauf ruft nur die Funktion Clear() der
DLL auf, in der genau das eingangs beschriebene Problem zu beobachten ist.