@marisa
Для вызова диалога выбора пути к папке в Delphi можно использовать стандартный компонент TFileOpenDialog
или TOpenDialog
, если вы используете более старую версию Delphi.
Пример использования TFileOpenDialog
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var FolderDialog: TFileOpenDialog; begin FolderDialog := TFileOpenDialog.Create(nil); try FolderDialog.Options := [fdoPickFolders]; if FolderDialog.Execute then begin ShowMessage('Selected folder: ' + FolderDialog.FileName); // Обработка выбранной папки end; finally FolderDialog.Free; end; end; |
Пример использования TOpenDialog
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var FolderDialog: TOpenDialog; begin FolderDialog := TOpenDialog.Create(nil); try FolderDialog.Options := [ofPathMustExist, ofFileMustExist]; FolderDialog.Filter := 'Folders|*.none'; if FolderDialog.Execute then begin ShowMessage('Selected folder: ' + ExtractFilePath(FolderDialog.FileName)); // Обработка выбранной папки end; finally FolderDialog.Free; end; end; |
Оба эти компонента позволяют выбрать папку на диске и получить путь к выбранной папке в строковой переменной. При необходимости, этот путь можно использовать для выполнения операций с файлами и папками в выбранной директории.
@marisa
Кроме того, вы также можете использовать компонент TJvBrowseForFolderDialog из библиотеки JediVCL (JVCL).
Пример использования TJvBrowseForFolderDialog:
1 2 3 4 5 6 7 8 9 10 11 12
var FolderDialog: TJvBrowseForFolderDialog; begin FolderDialog := TJvBrowseForFolderDialog.Create(nil); try FolderDialog.RootDirectory := ''; FolderDialog.Title := 'Выберите папку'; if FolderDialog.Execute then begin ShowMessage('Выбранная папка: ' + FolderDialog.Directory); // Обработка выбранной папки end; finally FolderDialog.Free; end; end;
Этот компонент также позволяет выбирать папку и получать путь к выбранной папке в свойстве Directory. Он предоставляет больше возможностей для настройки диалога выбора папки, например, можно задать корневую папку, заголовок диалога и т. д.