Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбор директории [D7, WinXP]


DeScriptor ©   (2004-07-15 02:08:00) 

Задача заключается в том, что надо дать пользователю возможность выбрать существующую директорию на винте для последующего чтения всех файлов из нее.
Есть ли диалог для осуществления сабжа (как, например, при использовании функции Copy File в ХРе, или при открытии директории в WinAmp'е)? И если нету, то каким образом можно что-нибудь подобное реализовать?


fxmike   (2004-07-16 01:25:00) [1]

Посмотри компонент TDirectoryListBox по-иоему как раз сгодится для твоих целей.


DeScriptor   (2004-07-16 01:13:00) [2]

Спасибо! Только - ой! =) Мне бы в этом во всем разобраться...


CHES   (2004-07-15 10:09:00) [3]

Сорри, выбранный каталог в переменной TempPath конечно-же.

Кстати в структуру  TBrowseInfo можно передать адрес callback функции.


CHES   (2004-07-15 09:04:00) [4]

Тогда может так


...
uses
ShellAPI, ShlObj;
...

procedure TForm1.Button1Click(Sender: TObject);
var
 TitleName : string;
 lpItemID : PItemIDList;
 BrowseInfo : TBrowseInfo;
 DisplayName : array[0..MAX_PATH] of char;
 TempPath : array[0..MAX_PATH] of char;
begin
 FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
 BrowseInfo.hwndOwner := Form1.Handle;
 BrowseInfo.pszDisplayName := @DisplayName;
 TitleName := 'Please specify a directory';
 BrowseInfo.lpszTitle := PChar(TitleName);
 BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
 lpItemID := SHBrowseForFolder(BrowseInfo);
 if lpItemId <> nil then
 begin
   SHGetPathFromIDList(lpItemID, TempPath);
    // в переменной temp - выбранный каталог
   GlobalFreePtr(lpItemID);
 end;
end;


Григорьев Антон   (2004-07-15 08:48:00) [5]


> CHES ©   (15.07.04 08:39) [2]
> А чем OpenDialog не устраивает?


Видимо, тем, что выбирает файл, а не директорию.


CHES   (2004-07-15 08:39:00) [6]

А чем OpenDialog не устраивает?


P.N.P.   (2004-07-15 02:14:00) [7]

Смотри в справке SelectDirectory


Наверх

Титульная страница Поиск, карта сайта Написать письмо