Форум: "WinAPI";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизДиалог выбора и создания папки Найти похожие ветки
← →
newones (2007-07-07 21:03) [0]Подскажите, есть код для выбора папки
function OpenDir():String;
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
Result:="";
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);
Result:=TempPath;
end;
end;
Как его доработать или вообще вопользоваться другим, для того чтобы появилась еще кнопка для создания папки.
← →
JanMihail © (2007-07-07 21:12) [1]смотрите SelectDirectory из модуля ShellAPI
← →
newones (2007-07-07 21:18) [2]SelectDirectory выглядит старовато
← →
Kolan © (2007-07-07 21:23) [3]> SelectDirectory выглядит старовато
Их там ДВЕ. Одна из них стандартная…
← →
JanMihail © (2007-07-07 21:27) [4]SelectDirectory выглядит так, как и в коде который указан в сабже.
Ну есть еще один вариант. Сделайте форму. На нее поместите компонент ShellTreeView с вкладки Samples. И три кнопки Ок, Отмена, Создать папку. По нажатии кнопки создать папку просто напишите такой код:
MkDir(ShellTreeView1.Path + "\" + "<имя папки>")
Ну и там естественно компоненты разместите как в диалоге выбора папки.
← →
Anatoly Podgoretsky © (2007-07-07 21:27) [5]BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS or BIF_USENEWUI
← →
Dib@zol © (2007-07-07 21:32) [6]Проставляй в BrowseInfo.lpfn указатель на заданную тобой калбэк-функцию BrowseInfoProc и на мессидж BFFM_INITIALIZED проставляй этому диалогу свою оконную процедуру с помощью SetWindowLong. Потом из этого калбэка надо зашарашить кнопку на данный диалог. Ловить сообщения от этой кнопки должна будет оконная процедура, а в случае иных сообщений отвечать CallWindowProc"ом. Есть вопросы - пиши в ветку.
← →
Anatoly Podgoretsky © (2007-07-07 21:34) [7]> newones (07.07.2007 21:18:02) [2]
Чем это?
Может ты не умеешь готовить?
← →
DVM © (2007-07-08 23:15) [8]
uses Windows, ShellApi, ShlObj;
function BrowseFolderDialog(OwnerWnd: HWND; const Title: string): string;
var
bi: TBrowseInfo;
pidlBrowse: PItemIDList;
Buffer: array[0..MAX_PATH] of Char;
DispName: array[0..MAX_PATH] of Char;
begin
bi.hwndOwner := OwnerWnd;
bi.pidlRoot := nil;
bi.pszDisplayName := DispName;
bi.lpszTitle := PChar(Title);
bi.ulFlags := BIF_RETURNONLYFSDIRS or BIF_USENEWUI or BIF_NEWDIALOGSTYLE;
bi.lpfn := nil;
bi.lParam := 0;
bi.iImage := 0;
pidlBrowse := SHBrowseForFolder(bi);
if (pidlBrowse <> nil) then
if (SHGetPathFromIDList(pidlBrowse, @Buffer)) then
result := Buffer;
end;
← →
Anatoly Podgoretsky © (2007-07-08 23:26) [9]Зачем это BIF_NEWDIALOGSTYLE если
BIF_USENEWUI = BIF_NEWDIALOGSTYLE or BIF_EDITBOX;
Что бы масло было масляным?
← →
DVM © (2007-07-08 23:31) [10]
> Что бы масло было масляным?
угу
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c