Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

Добавление папок «Мой комп» и т.д. в диалоге открытия директории   Найти похожие ветки 

 
Restor   (2003-07-08 01:36) [0]

Спецы помогите… Как создать диалог открытия ДЕРЕКТОРИИ в котором были бы папки «Рабочий стол», «Мой комп» и т.д. Или подскажите ссылочку, с подробным описанием. ОЧЕНЬ надо.... plzzzzzzzz


 
Babay ©   (2003-07-08 05:57) [1]

Посмотри function SelectDirectory в модуле FileCtrl из поставки Дельфи. Она имеено это и делает.

А вот ее код ежели не найдешь

function SelectDirectory(const Caption: string; const Root: WideString;
var Directory: string): Boolean;
var
WindowList: Pointer;
BrowseInfo: TBrowseInfo;
Buffer: PChar;
OldErrorMode: Cardinal;
RootItemIDList, ItemIDList: PItemIDList;
ShellMalloc: IMalloc;
IDesktopFolder: IShellFolder;
Eaten, Flags: LongWord;
begin
Result := False;
if not DirectoryExists(Directory) then
Directory := "";
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
try
RootItemIDList := nil;
if Root <> "" then
begin
SHGetDesktopFolder(IDesktopFolder);
IDesktopFolder.ParseDisplayName(Application.Handle, nil,
POleStr(Root), Eaten, RootItemIDList, Flags);
end;
with BrowseInfo do
begin
hwndOwner := Application.Handle;
pidlRoot := RootItemIDList;
pszDisplayName := Buffer;
lpszTitle := PChar(Caption);
ulFlags := BIF_RETURNONLYFSDIRS;
if Directory <> "" then
begin
lpfn := SelectDirCB;
lParam := Integer(PChar(Directory));
end;
end;
WindowList := DisableTaskWindows(0);
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
ItemIDList := ShBrowseForFolder(BrowseInfo);
finally
SetErrorMode(OldErrorMode);
EnableTaskWindows(WindowList);
end;
Result := ItemIDList <> nil;
if Result then
begin
ShGetPathFromIDList(ItemIDList, Buffer);
ShellMalloc.Free(ItemIDList);
Directory := Buffer;
end;
finally
ShellMalloc.Free(Buffer);
end;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
14-68039
Poirot
2003-07-04 12:05
2003.07.21
Вот теперь хочется вот этот Delphi 7 SP 1-2


7-68080
Monak
2003-05-11 19:23
2003.07.21
Время...


7-68093
Berzercer
2003-05-13 16:57
2003.07.21
УБРАТЬ иконку из ALT-TAB


14-68069
Mishenka
2003-07-05 03:48
2003.07.21
Где достать рисунок к кнопке добавить?


14-68031
Devil
2003-06-26 15:56
2003.07.21
Инсталлятор BDE