Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SHBrowseForFolder und Pfadangabe (https://www.delphipraxis.net/62832-shbrowseforfolder-und-pfadangabe.html)

Baeuerle 10. Feb 2006 08:07


SHBrowseForFolder und Pfadangabe
 
Hallo zusammen,

habe das Problem, dass ich bei einem Auswahldialog die Selektion auf einen bestimmten Ordner stellen möchte.

Delphi-Quellcode:
function OpenFolder(Root: Integer; const Caption: string): string;
var
  bi: TBrowseInfo;
  lpBuffer: PChar;
  pidlPrograms, pidlBrowse: PItemIDList;
begin
  if (not SUCCEEDED(SHGetSpecialFolderLocation(GetActiveWindow, Root,
    pidlPrograms))) then
    exit;
  lpBuffer := StrAlloc(MAX_PATH);
  bi.hwndOwner := GetActiveWindow;
  bi.pidlRoot := pidlPrograms;
  bi.pszDisplayName := lpBuffer;
  bi.lpszTitle := PChar(Caption);
  bi.ulFlags := BIF_RETURNONLYFSDIRS;
  bi.lpfn := @BrowseCallbackProc;
  bi.lParam := 0;
  pidlBrowse := SHBrowseForFolder(bi);
  if (pidlBrowse <> nil) then
    if SHGetPathFromIDList(pidlBrowse, lpBuffer) then
      Result := lpBuffer;
  StrDispose(lpBuffer);
end;
Hat jemand eine idee???

Danke

Baeuerle 10. Feb 2006 10:35

Re: SHBrowseForFolder und Pfadangabe
 
Hab es selbst herausgefunden!

Wen´s interessiert:

SendMessage(BrowseHandle,BFFM_SETSELECTION, Ord(True), Integer(PChar(sPath)));

runger 28. Aug 2006 13:39

Re: SHBrowseForFolder und Pfadangabe
 
Hallo,

bitte poste doch nocheinmal den ganzen Code (alles was man zum Verständnis des Problems braucht). Mich interessiert vor allem die Uses Zeile.
Wie hast du die Lösung hinbekommen?

Wenn man schon fragt, dann gebietet es der Anstand, dass man den ganzen Code ins Forum stellt.
Nicht jeder ist so helle, dass er deine Codeschnipsel versteht.

Rainer

Daniel G 28. Aug 2006 14:26

Re: SHBrowseForFolder und Pfadangabe
 
Zitat:

Zitat von runger
Mich interessiert vor allem die Uses Zeile.

Welche Funktion findet er denn nicht? :stupid:

_frank_ 29. Aug 2006 14:22

Re: SHBrowseForFolder und Pfadangabe
 
wenn ich shlobj einbinde funktioniert es.
jedoch bin ich noch nicht dahintergekommen, wie die BrowseCallbackProc aussehen muss..
Denn wenn ich die verwenden will, kommt immer eine Zugriffsverletzung.
Wie sieht die bei dir aus?

//edit: habs gefunden, du beziehst dich auf diesen Artikel (nur das man noch "or BIF_STATUSTEXT" zu den ulFlags hinzufügen muss)...
http://www.delphipraxis.net/internal...t.php?p=165971

Gruß Frank

Christian S. 29. Aug 2006 16:03

Re: SHBrowseForFolder und Pfadangabe
 
Hallo!

Hier gibt es eine FolderBrowser-Klasse, die von mehreren Leuten (u.a. Luckie, MathiasSimmack und mir) erstellt wurde:
http://www.delphi-forum.de/viewtopic.php?t=27628

Neben einem vorausgewählten Ordner unterstützt die Klasse auch das festlegen der Dialog-Position, das Filtern der angezeigten Dateien (falls Dateien angezeigt werden) und das Übersetzen von Advertised ShortCuts.

Grüße
Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz