Az alábbi példa bemutatja, hogy hogyan lehet használni a Windows könytárválasztó párbeszédablakját az SHBrowseForFolder Win32API függvény segítségével. { . . . } implementation uses shlobj; {$R *.DFM} function ShellShowDirs ( AHandle : HWND ): string ; var BrowsingInfo : TBrowseInfo ; // BrowsingInfo; DirPath : String ; // char DirPath[MAX_PATH]; FolderName : string ; // char FolderName[MAX_PATH]; pItemId : PItemIDList; // LPITEMIDLIST; ItemID; begin DirPath := '' ; FolderName := '' ; DirPath := StringOfChar(' ', MAX_PATH); FolderName := StringOfChar (' ' , MAX_PATH) ; // A párbeszédablak tulajdonságai BrowsingInfo.hwndOwner := AHandle ; // self.Handle ; BrowsingInfo.pszDisplayName := PChar(FolderName) ; BrowsingInfo.lpszTitle := PAnsiChar ('Válassz egy könyvtárat!'); BrowsingInfo.ulFlags := BIF_RETURNONLYFSDIRS and BIF_DONTGOBELOWDOMAIN ; BrowsingInfo.pidlRoot := nil ; BrowsingInfo.lpfn := nil ; // A párbeszédablak megjelenítése pItemID := SHBrowseForFolderA( BrowsingInfo ); // A választott könyvtár megállapítása SHGetPathFromIDList(pItemID, PChar(DirPath)); result := PChar(DirPath) ; // pItemId által lefoglalt memória felszabadítása GlobalFreePtr(pItemID); end; procedure TForm1.SelDirBtnClick(Sender: TObject); var sDir : string ; begin sDir := ShellShowDirs (self.Handle); if ( length(sDir) > 0 ) then ShowMessage ('A választott könyvtár:'+ #13 + sDir ) else ShowMessage ('Nem választott könyvtárat.') ; end ;