Thema: Delphi Ordner angeben

Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Ordner angeben

  Alt 14. Jul 2003, 17:19
Neben SelectDirectory gibt es auch noch die neuere Möglichkeit, die optisch besser aussieht!

Delphi-Quellcode:
uses
  ShellAPI, SHLObj;

//////////////////////////////

function OpenFolder(root: Integer; 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 := nil;
  bi.lParam := 0;

  pidlBrowse := SHBrowseForFolder(bi);
  if (pidlBrowse <> nil) then
    if SHGetPathFromIDList(pidlBrowse, lpBuffer) then
      Result := lpBuffer;
  StrDispose(lpBuffer);
end;

////////////////////////////////////////

// Aufruf //

procedure TForm1.Button1Click(Sender: TObject);
var
  Verz: String;
begin
  Verz := OpenFolder(CSIDL_DRIVES,'Verzeichnis auswählen');
  // CSIDL_DRIVES sorgt dafür, dass du als obertes Verzeichnis den
  // Arbeitslplatz hast ;-)
end;
mfG
mirage228
David F.
  Mit Zitat antworten Zitat