![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выбор директории [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