Vor kurzem wurde folgendes festgestellt: Wird in einem leeren Verzeichnis ein Unterverzeichnis angelegt, werden für das Unterverzeichnis zwei TreeNodes angelegt. Wird das letzte Unterverzeichnis gelöscht und ein neues angelegt, dann wird es nur einmal angezeigt. Ursache ist, dass beim leeren TreeNode die Eigenschaft Expanded den Wert False hat. Deshalb wird beim Expanding noch einmal EnumFolder ausgeführt. Eine echte Lösung habe ich nicht gefunden, nur einen Workaround:
Delphi-Quellcode:
{ Workaround Beginn }
ptvExplorer.ReScan;
ptvExplorer.SetFocus;
{ Workaround Ende }
ptvExplorer.ReScan;
Beim ersten ReScan wird das Unterverzeichnis zweimal eingetragen. Beim SetFokus wird Expanded aktualisiert und beim zweiten ReScan werden die Unterverzeichnisse gelöscht und der Unterordner nur einmal eingetragen.
Ausserdem habe ich die Aktualisierung nach dem Löschen und nach F5 ein wenig geändert
15.07.2010 - Build 14
- Nach dem Löschen eines Ordners wird auch der übergeordnete neu gescannt.
- Beim Aktualisieren per F5 wird auch der übergeordnete Ordner neu gescannt.
- Workaround dafür, dass bei sofortiger Erstellung des ersten dieser zweimal angezeigt wird.
- Button beim Formular für den Namen des neuen Ordners auf normale Größe gesetzt und Formularhöhe angepasst.