Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

OpenDir   Найти похожие ветки 

 
Dir   (2004-07-16 20:12) [0]

Как можно вывести окно выбора директории?


 
Dolt ©   (2004-07-16 22:15) [1]

Function ExploreFolder(Title:String;Var Dir:String):Boolean;
var
 Malloc: IMalloc;
 Desktop: IShellFolder;
 pidlMyComputer: PItemIDList;
 pidlResult: PItemIDList;
 pidlInitialFolder: PItemIDList;
 bi: TBrowseInfo;
 ProgramFilesDir: WideString;
 CharsDone: ULONG;
 dwAttributes: DWORD;
begin
 result:=False;
 if SUCCEEDED(SHGetMalloc(Malloc)) then
 try // acquire shell namespace root folder
   if SUCCEEDED( SHGetDesktopFolder( Desktop ) ) then
   try // acquire folder that will serve as root in dialog
     if SUCCEEDED( SHGetSpecialFolderLocation( 0, CSIDL_DRIVES, pidlMyComputer ) ) then
     try // acquire PIDL for folder that will be selected by default
       if
         SUCCEEDED(
           Desktop.ParseDisplayName( 0, nil, PWideChar(ProgramFilesDir), CharsDone,
           pidlInitialFolder, dwAttributes ))
       then
       try
         SetLength(Dir, MAX_PATH );
         FillChar( bi, sizeof(bi), 0 );
         bi.pidlRoot := pidlMyComputer; // roots from "My Computer"
         bi.pszDisplayName := PChar(Dir);
         bi.lpszTitle := PChar(Title);
         bi.ulFlags := BIF_STATUSTEXT;
         pidlResult := SHBrowseForFolder( bi );
         if Assigned(pidlResult) then
         try
           SetLength(Dir, MAX_PATH );
           result:=true;
           SHGetPathFromIDList( pidlResult, PChar(Dir));
           Dir:=String(PChar(Dir));
         finally
           Malloc.Free( pidlResult ); // release returned value
         end;
       finally
         Malloc.Free( pidlInitialFolder ); // release PIDL for folder that
                                           // was selected by default
       end;
     finally
       Malloc.Free( pidlMyComputer ); // release folder that was served as root in dialog
     end;
   finally
     Desktop := nil; // release shell namespace root folder
   end;
 finally
   Malloc := nil; // release shell"s allocator
 end;
end;

(c) Не мое - нашел в инете


 
Dimaxx   (2004-07-16 23:55) [2]

SHBrowseForFolder из shellapi


 
Dimaxx   (2004-07-16 23:56) [3]

Тьфу, нет его там. Вот декларация...

function SHBrowseForFolder(var lpbi: TBrowseInfo): PItemIDList; stdcall; external "shell32.dll" name "SHBrowseForFolderA";

TBrowseInfo = record
 hwndOwner: HWND;
 pidlRoot: PItemIDList;
 pszDisplayName: PAnsiChar;  { Return display name of item selected. }
 lpszTitle: PAnsiChar;      { text to go in the banner over the tree. }
 ulFlags: UINT;           { Flags that control the return stuff }
 lpfn: Pointer; //TFNBFFCallBack;
 lParam: LPARAM;          { extra info that"s passed back in callbacks }
 iImage: Integer;         { output var: where to return the Image index. }
end;


 
Григорьев Антон ©   (2004-07-17 08:16) [4]

Функция SelectDirectiry из модуля FileCtrl



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

Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.034 c
3-1091693682
Sirruf
2004-08-05 12:14
2004.08.29
BLOB-поля по-простому


3-1091606346
Вика
2004-08-04 11:59
2004.08.29
Возврат значений из запроса


1-1092267094
mvgfirst
2004-08-12 03:31
2004.08.29
Нужно написать программу сервер используюя SOAP с чего начать?


1-1092148660
VEG
2004-08-10 18:37
2004.08.29
Многопоточная работа с файлами через DLL


3-1091648519
gonta
2004-08-04 23:41
2004.08.29
Инсталяция компонентов ODAC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский