Zugriff auf den Ordnerauswahldialog von Windows


Beispiel
Beispiel

In der Dialogliste der Delphikomponenten ist kein Dialog für die Ausahl eines Ordners vorhanden (zumindest nicht bis Delphi 4). Das bedeutet, dass Sie sich einen eigenen Dialog basteln müssten, was einerseits Zeit und andererseits Resourcen kostet.
Eleganter und einfacher ist da die Einbindung des Windowsdialoges für die Ordnerwahl. Um diesen aus Delphi heraus aufzurufen, sind nur ein paar Zeilen Sourcecode nötig. Sie müssen dann nur noch den Titeltext an Ihre Bedürfnisse anpassen.
Wichtig: Die Unit ShlObj muss der uses- Klausel beigefügt werden.
Die Funktion Verzeichnis_waehlen zeigt den Dialog an und liefert einen String zurück, der den Pfad des gewählten Ordners enthält. Klickt man auf Abbrechen, dann wird ein leerer String zurückgegeben.

function TMainForm.Verzeichnis_waehlen: string;
var Optionen: TBrowseInfo;
Buffer: array[0..255] of char;
begin
  Optionen.hwndOwner:= MainForm.Handle;
  Optionen.pidlRoot:= NIL;
  Optionen.pszDisplayName:= Buffer;
  Optionen.lpszTitle:= 'Bitte wählen Sie einen Ordner:';
  Optionen.ulFlags:= 0;
  Optionen.lpfn:= NIL;
  Optionen.lParam:= 0;
  SHGetPathFromIDList(SHBrowseForFolder(Optionen), Buffer);
  Verzeichnis_waehlen:= StrPas(Buffer);
end;


Wenn Sie nähere Informationen über die einzelnen Komponenten des Records TBrowseInfo oder über den Befehl SHBrowseForFolder benötigen, dann schauen Sie in der Win32.hlp unter dem Stichwort SHBrowseForFolder nach. Dort sind alle Parameter erläutert.