![]() |
Versteckte Verzeichnisse nur im SelectDialog anzeigen
Hallo,
ich habe die folgende Funktion von den ![]() |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Was sind denn für dich "versteckte" Verzeichnisse? Ordner mit dem Attribut "hidden"?
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Zitat:
sehe ich ja bestimmte Dateien und Verzeichnisse nicht. Ich möchte lediglich dem System sagen, wenn mein SelectDirectory-Dialog geöffnet wird, dass diese beiden Einstellungen nicht gelten oder relevant sind. Also im Klartext, die Ordner sollten angezeigt werden, egal wie die Einstellungen unter Ordneroptionen aussehen. |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Hben diese Einstellungen denn überhaupt einfluss auf den Dialog? Ist mir bisher noch nicht bewußt geworden. Ich meine nämlich, dass diese nur für den Explorer gelten.
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Mit der oben angegeben Funktion von den Schweizern haben diese Einstellungen Auswirkungen auf den Dialog. Wenn Du eine andere Lösung kennst, dann nur her damit. Es sei aber gleich vorausgesagt, dass der Befehl SelectDirectory auf meinem Rechner keinen Dialog anzeigt und soweit ich es aus der Hilfe verstanden habe, kann ich bei diesem Befehl auch kein Startverzeichnis mitgeben oder sehe ich das Ganze falsch ?
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Bei der Funktion musst du irgendeinen Flag mitgeben. Einen anderen als 25. welchen statdessen, weiß ich aber nicht :?
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Zitat:
Das ganze löst aber nicht mein Problem. Hat keiner eine Idee ? |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Hat denn wirklich keiner eine Idee, wie ich das ganze verwirklichen kann ?
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Also da steht anscheinend wirklich nichts passendes drin,
![]() ![]() Aber wenn ich mih nicht irre, dann gab es bei auch noch ein paar Ereignisse in der BrowseCallbackProc, welche man für sowas gebrauchen kann. Jedenfalls gab es damals bei meinen Versuchen mit diesem Dialog auch die Möglichkeit über ein entsprechendes Ereignis zu bestimmen, ob ein Eintrag angezeigt werden soll, oder nicht. (also den Vorgabewert zu ändern). Wei jezuz auch nicht wo und ob das alte Projekt dazu noch irgendwo rumliegt ... wenn ich's mal sehe meld ich mich. [add] Ach ja, der Dialog kapselt doch auch nur ein Explorerfenster und verwendet demnach auch die Explorereinstellungen (Optionen). |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Zitat:
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Ich weiß und wie gesagt, ich werd mal sehn, ob ich was finde.
Ich bin mir jedenfalls recht sicher, daß es 'ne Möglichkeit gibt da was zu machen. Du kannst ja inzwischen auch mal seber nachsehen, ob nicht auch jetzt schon andere Ereignisse der BrowseCallbackProc übergeben werden. (in die CASE ein ELSE anhängen und schauen ob/was dort ankommt) |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Wenn du die Flags $00000004 und $25 setzt, müsste esgehen. :zwinker: :gruebel:
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Wenn ich das Flag so ändere :
Delphi-Quellcode:
Das funktioniert aber trotzdem nicht oder habe ich das verkehrte Flags geändert.
with BrowseInfo do
begin hwndOwner := hOwn; pidlRoot := RootItemIDList; pszDisplayName := Buffer; lpszTitle := PChar(Caption); ulFlags := $00000004 + uFlag; lpfn := @BrowseCallbackProc; lParam := Integer(PChar(Path)); end; |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Du muss so aufrufen:
Delphi-Quellcode:
:zwinker: :feuerchen:
SelectDirectoryEx(Handle, Path, 'Select Directory Sample', 'C:\', $25 and $00000004);
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Ich habe das jetzt verschiedensten Flag-Einstellungen probiert von der BrowseInfo, nur leider funktioniert da garnichts von.
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Wie gesagt, im MSDN/PSDK sind keine Flags dafür aufgeführt, es scheint also keine Flags zu geben.
Hast du inzwischen mal geprüft, ob da noch andere Ereignisse ankommen?
Code:
function BrowseCallbackProc(hwnd: HWND; uMsg: UINT; lParam: Cardinal;
lpData: Cardinal): Integer; stdcall; var PathName: array[0..MAX_PATH] of Char; begin case uMsg of BFFM_INITIALIZED: SendMessage(Hwnd, BFFM_SETSELECTION, Ord(True), Integer(lpData)); BFFM_SELCHANGED: begin SHGetPathFromIDList(PItemIDList(lParam), @PathName); SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, Longint(PChar(@PathName))); end; [b][color=#ff0000] else begin ... end;[/color][/b] end; Result := 0; end; |
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Nee, da kommen keine anderen Ereignisse an. Es wird lediglich immer nur BFFM_INITIALIZED und BFFM_SELCHANGED ausgeführt. Ich habe das ganze nur so geprüft, dass ich mir eine kleine ShowMessage dort eingebaut habe. Danach habe ich es getestet und bei den Tests ist die Case-Anweisung nie in die Else-Schleife reingegangen.
|
Re: Versteckte Verzeichnisse nur im SelectDialog anzeigen
Tut mir Leid, aber ich hab mich getäucht.
Das Ereignis welches ich im Kopf hatte war ![]() ![]() ![]() Man könnte höchstens versuchen die Nachrichten der ListView umzuleiten und die nötigen Ereignisse dort abzuarbeiten. PS: Die DialogID der TreeView könnte irgendwo zwischen 14140 und 14155 liegen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 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 by Thomas Breitkreuz