![]() |
Re: OpenDirDialog
Ohne Edit kannst Du es machen wie Luckie meinte:
Zitat:
|
Re: OpenDirDialog
OK, danke fürs erste! Ich werde mich weiter rantasten. :lol:
MfG Jufis |
Re: OpenDirDialog
Hi,
Delphi-Quellcode:
Die AV sollte noch weg.
Procedure TOpenDirDialog.OpenDirDlgResize(Sender: TObject);
var Oben : Integer; Unten : Integer; begin if OpenDirDlg.Visible then begin ... Bu_NewFolder.SetBounds(FWidth - 101, FHeight - 31, 95, 25); // <--- !!! Da krachts, wenn es keinen Bu_NewFolder gibt! end; end; Mfg FAlter |
Re: OpenDirDialog
Zitat:
|
Re: OpenDirDialog
Mit D2009 sieht der OpenDirDialog schon erheblich besser aus.
Unter TurboDelphi war mir aufgefallen, dass das Ereignis ST_OrdnerChange nicht eingebunden war. Ausserdem wird das Property OnCreate nicht benötigt und aus der Liste der verbotenen Keys habe ich den : herausgenommen, weil sonst immer das Laufwerk angeklickt werden muss, wenn man den Pfad im Edit eingeben will. Für D2009 konnten die Komponente TWideLabel entfernt und die Deklarationen WideString in String geändert werden. Ausserdem scheint sich DirectoryExists geändert zu haben, da zum Beispiel die Prüfung von 'd:' true ergibt. Im EditKeyPress wird nun die Function CharInSet verwendet, welche in TurboDelphi 2006 noch nicht enthalten ist. Die Demo ist mit der Trial von D2009 Architect kompiliert und dürfte wohl nur 14 Tage ab Installation ausführbar sein!? In den Edits der Demo wurden bei mir die Unicodezeichen nicht korrekt angezeigt. |
Re: OpenDirDialog
11.04.2010 - Build 10
Für Delphi 7 und Turbo Delphi werden die TNT Hack Controls verwendet. Das sollte kein Problem sein, da der Widestring sonst auch irgendwie angezeigt werden muss. Die falsche Anzeige der Widestrings in der Demo mit D2009 lag an der eingestellten Schrift MS San Serif. Mit Tahoma funcktioniert es richtig. Jetzt müsste das ganze am besten in nonVCL überführt werden. :gruebel: |
Re: OpenDirDialog
Zwei Versionen für Delphi mit und ohne unicodefähige Komponenten waren mir zuviel. Auch die Verwendung von zwei Units. Deshalb:
17.04.2010 - Build 11
|
Re: OpenDirDialog
So ganz war es doch noch nicht auf WideStrings umgestellt. Wenn ein Verzeichnis WideChars enthielt, wollte der NewFolder-Dialog nicht. Ebenso war es dann mit dem Erstellen des Unterordners weil ForceDirectories nur Ansi verwendet. Ausserdem hatte ich beim Vergleichen der Strings beim Setzen des InitialDir übersehen, das LowerCase auch nur Ansi ist.
03.05.2010 - Build 12
Wie ich gesehen habe, scheint das wiederholte Einlesen nach dem Löschen auch nicht so zu funktionieren, wie es soll. Da müsste noch ein Refresh wie F5 im Explorer rein. |
Re: OpenDirDialog
Beim Rescan wurden die existierenden Ordner in die Liste hinzugefügt. So erhöhte sich die Anzahl bei jedem Einfügen oder Löschen eines Ordners. Hier die Liste der Änderungen:
04.05.2010 - Build 13
|
AW: OpenDirDialog
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:
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.
{ Workaround Beginn }
ptvExplorer.ReScan; ptvExplorer.SetFocus; { Workaround Ende } ptvExplorer.ReScan; Ausserdem habe ich die Aktualisierung nach dem Löschen und nach F5 ein wenig geändert 15.07.2010 - Build 14
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz