СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как показать диалог выбора директории?

Ответ

из модуля 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, pppidl);
    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;

Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация