Как показать диалог выбора директории
Как показать диалог выбора директории
Как показать диалог выбора директории из модуля FileCtrl. 1. function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean; overload; 2. function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload; из RxLib TDirectoryEdit function GetDirectory(nFolder: Longint): String; var Bi : TBrowseInfo; lpName: array [0..MAX_PATH] of Char; ppidl, aItemLst : PItemIDList; begin SHGetSpecialFolderLocation(Application.Handle, nFolder, ppidl); FillChar(Bi, SizeOf(bi), 0); Bi.hwndOwner := Application.Handle; Bi.pidlRoot := ppidl; Bi.pszDisplayName := lpName; Bi.lpszTitle := 'Open directory'; aItemLst := SHBrowseForFolder(Bi); CoTaskMemFree(ppidl); SHGetPathFromIDList(aItemLst, lpName); CoTaskMemFree(aItemLst); Result := lpName; end; Пример использования (иначе не поймут, что такое nFolder) // значения nFolder можно найти в описании // к SHGetSpecialFolderLocation // из Win32 Programmer's Reference (win32.hlp) procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetDirectory(CSIDL_DRIVES); end;