![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
путь к папке [D7, WinXP]
shodan © (2005-02-19 23:21:00)Привет всем мастерам!
Вопрос: нужно задавать путь к папке, без отображения файлов и с возможностью создания новой папки, как сделать используя диалоговое окно с отображением дерева дисков и папок вроде того, что в internet explorer добавления в избраное...
GanibalLector (2005-02-20 02:40:00) [1]только без создания ;)
uses shlobj;
function PfBrowseDialog (const Title: string; const Flag,csidl: integer): 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);
SHGetSpecialFolderLocation
(Application.Handle,csidl,BrowseInfo.pidlRoot);
with BrowseInfo do begin
hwndOwner := Application.Handle;
pszDisplayName := @DisplayName;
lpszTitle := PChar(Title);
ulFlags := Flag;
end;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
Result := TempPath;
GlobalFreePtr(lpItemID);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Path:String;
begin
Path:=PfBrowseDialog('Choose a Path,lamers',
BIF_STATUSTEXT{+BIF_BROWSEINCLUDEFILES},CSIDL_DESKTOP);
Caption:=Path;
end;
Техник Харлан (2005-02-20 00:03:00) [2]Постмотри unit FileCtrl, функция SelectDirectory, если её стандартная реализация не подходит, сделая свою
Alexander Panov (2005-02-19 23:58:00) [3]
function DirSelect(const RootDir: String): String;
var
Dir: String;
begin
Dir := RootDir;
if SelectDirectory(
Dir,
[sdAllowCreate, sdPerformCreate, sdPrompt],
0)
then Result := Dir
else Result := '';
end;