Страница 1 из 1
Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 13:27
namomelkor
нужен диалог выбора папки
Re: Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 14:13
Хыиуду
ShellTreeView в закладке Samples
Re: Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 14:22
namomelkor
а не визуальный есть? как opendialog.
Re: Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 15:30
Лелик_1044
namomelkor писал(а):а не визуальный есть? как opendialog.
А из jvcl не походит?
Re: Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 15:37
Blood_Magic
есть то что ты хочешь:uses ShlObj;функцияSHBrowseForFolder
Re: Как сделать диалог выбора папки
Добавлено: 14 мар 2007, 16:51
namomelkor
Blood_Magic писал(а):есть то что ты хочешь:uses ShlObj;функцияSHBrowseForFolder
что-то не пойму как ее юзать
Re: Как сделать диалог выбора папки
Добавлено: 15 мар 2007, 08:46
Blood_Magic
так справку читать надо если не понятно как юзать
вот так можешь функцию написать
Код: Выделить всё
uses ShlObj;
//Handle - Ссылка на родительское окно
function BrowseDialog(const Handle:Cardinal):string;
var
lpItemID:PItemIDList;
BrowseInfo:TBrowseInfo;
DisplayName:array[0..MAX_PATH] of char;
TempPath:array[0..MAX_PATH] of char;
begin
Result:='';
FillChar(BrowseInfo,sizeof(TBrowseInfo),#0);
with BrowseInfo do
begin
hwndOwner:=Handle;
pszDisplayName:=@DisplayName;
lpszTitle:='Выбор папки БД';
ulFlags:=BIF_RETURNONLYFSDIRS;
end;
lpItemID:=SHBrowseForFolder(BrowseInfo);
If lpItemId<>nil then
begin
SHGetPathFromIDList(lpItemID,TempPath);
Result:=TempPath;
GlobalFreePtr(lpItemID);
end;
end;
а так юзай
Код: Выделить всё
........
NewBaseDir:=BrowseDialog(Handle);
If NewBaseDir<>'' then
........
Re: Как сделать диалог выбора папки
Добавлено: 15 мар 2007, 10:07
SergeyS
uses FileCtrl;
там есть функция
function SelectDirectory(const Caption: string; const Root: WideString;
var Directory: string; Options: TSelectDirExtOpts; Parent: TWinControl): Boolean;
которая как раз и является делфовой обёрткой функции SHBrowseForFolder
Re: Как сделать диалог выбора папки
Добавлено: 15 мар 2007, 12:13
namomelkor
SergeyS писал(а):uses FileCtrl;
там есть функция
function SelectDirectory(const Caption: string; const Root: WideString;
var Directory: string; Options: TSelectDirExtOpts; Parent: TWinControl): Boolean;
которая как раз и является делфовой обёрткой функции SHBrowseForFolder
Вид у него очень совковый )))
на VBA есть такая штука
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Choose a folder:", &H4000, "")
Set objFolderItem = objFolder.Self
ipath$ = objFolderItem.Path
А на делфях есть такое? Или подскажите как под под делфи переделать.
Re: Как сделать диалог выбора папки
Добавлено: 15 мар 2007, 13:30
namomelkor
Blood_Magic извиняюсь это все из-за лени. Предложеный код это то что нужно. спасибо.