Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
6-1097261922
QuestionX
2004-10-08 22:58
2004.12.19
Размер принимаемых данных


1-1102075083
kaktus
2004-12-03 14:58
2004.12.19
Как убить приожение?


14-1101493291
Fay
2004-11-26 21:21
2004.12.19
Нужен программер на пост. работу


1-1102340961
Unknown user
2004-12-06 16:49
2004.12.19
Чтение и запись RTF.


14-1101503948
GanibalLector
2004-11-27 00:19
2004.12.19
переводчик




   Наверх