![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И снова выбор каталога
heady © (2004-11-04 18:56:00)нашел в факе - диалог выбора каталога, как ни искал на yandex'e - все время наткаюсь на эту процедуру... Подскажите пожалуйста, как вызвать этот же диалог, но с кнопкой "Создать папку". Зарание благодарен
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); ShowMessage(TempPath); GlobalFreePtr(lpItemID); end; end;
heady (2004-11-05 19:23:00) [1]Warlock - лучший!!!! невероятное спасибо! ДЕЙСТВИТЕЛЬНО то что нужно!!! Занесите в фак!
Warlock (2004-11-05 08:56:00) [2]Некоторая компиляция ответов с форума и кода из FAQ:
uses shlobj;
function TForm1.SelectDirectory: String;
const BIF_NEWDIALOGSTYLE = $40;
var
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 := Handle;
BrowseInfo.pszDisplayName := @DisplayName;
BrowseInfo.lpszTitle := 'Specify a directory';
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS or BIF_NEWDIALOGSTYLE;
lpItemID := SHBrowseForFolder(BrowseInfo);
if Assigned(lpItemId) then begin
SHGetPathFromIDList(lpItemID, TempPath);
GlobalFreePtr(lpItemID);
end else Result := '';
Result := String(TempPath);
end;
Alex_Petr (2004-11-04 22:32:00) [3]BrowseInfo.ulFlags:=BIF_STATUSTEXT or BIF_EDITBOX or BIF_NEWDIALOGSTYLE;
OSokin (2004-11-04 20:18:00) [4]Создать едит с кнопкой
begin...end (2004-11-04 19:59:00) [5]
> heady (04.11.04 18:56)
Насколько я знаю, с помощью SHBrowseForFolder создать такой диалог (с кнопкой) не получится. Могу ошибаться, конечно.
> [1] OSokin © (04.11.04 19:27)
> chdir и не мучайся
Т.е. ты предлагаешь вместо того, чтобы дать пользователю возможность выбрать каталог, перейти неизвестно куда самостоятельно?
heady (2004-11-04 19:54:00) [6]не в кассу :(
OSokin (2004-11-04 19:27:00) [7]chdir и не мучайся