Как сделать диалог выбора папки
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
нужен диалог выбора папки
ShellTreeView в закладке Samples
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
а не визуальный есть? как opendialog.
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
А из jvcl не походит?namomelkor писал(а):а не визуальный есть? как opendialog.
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
есть то что ты хочешь:uses ShlObj;функцияSHBrowseForFolder
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
что-то не пойму как ее юзатьBlood_Magic писал(а):есть то что ты хочешь:uses ShlObj;функцияSHBrowseForFolder
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
так справку читать надо если не понятно как юзать
вот так можешь функцию написать
а так юзай
вот так можешь функцию написать
Код: Выделить всё
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
........
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- SergeyS
- Сообщения: 196
- Зарегистрирован: 21 ноя 2006, 17:12
- Откуда: Хакасия, Абакан
- Контактная информация:
uses FileCtrl;
там есть функция
function SelectDirectory(const Caption: string; const Root: WideString;
var Directory: string; Options: TSelectDirExtOpts; Parent: TWinControl): Boolean;
которая как раз и является делфовой обёрткой функции SHBrowseForFolder
там есть функция
function SelectDirectory(const Caption: string; const Root: WideString;
var Directory: string; Options: TSelectDirExtOpts; Parent: TWinControl): Boolean;
которая как раз и является делфовой обёрткой функции SHBrowseForFolder
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
Вид у него очень совковый )))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
А на делфях есть такое? Или подскажите как под под делфи переделать.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
Blood_Magic извиняюсь это все из-за лени. Предложеный код это то что нужно. спасибо.