Текущий архив: 2004.12.19;
Скачать: CL | DM;
Вниз
И снова выбор каталога Найти похожие ветки
← →
heady (2004-11-04 18:56) [0]нашел в факе - диалог выбора каталога, как ни искал на 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;
← →
OSokin © (2004-11-04 19:27) [1]chdir и не мучайся
← →
heady (2004-11-04 19:54) [2]не в кассу :(
← →
begin...end © (2004-11-04 19:59) [3]
> heady (04.11.04 18:56)
Насколько я знаю, с помощью SHBrowseForFolder создать такой диалог (с кнопкой) не получится. Могу ошибаться, конечно.
> [1] OSokin © (04.11.04 19:27)
> chdir и не мучайся
Т.е. ты предлагаешь вместо того, чтобы дать пользователю возможность выбрать каталог, перейти неизвестно куда самостоятельно?
← →
OSokin © (2004-11-04 20:18) [4]Создать едит с кнопкой
← →
Alex_Petr © (2004-11-04 22:32) [5]BrowseInfo.ulFlags:=BIF_STATUSTEXT or BIF_EDITBOX or BIF_NEWDIALOGSTYLE;
← →
Warlock © (2004-11-05 08:56) [6]Некоторая компиляция ответов с форума и кода из 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;
← →
heady (2004-11-05 19:23) [7]Warlock - лучший!!!! невероятное спасибо! ДЕЙСТВИТЕЛЬНО то что нужно!!! Занесите в фак!
Страницы: 1 вся ветка
Текущий архив: 2004.12.19;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.026 c