|
Для вывода диалога "Обзор папок" существует функция SHBrowseForFolder. Для выбора того, какие папки будут выведены в диалоге, используется функция SHGetSpecialFolderLocation. В этой программе выводится рабочий стол со всеми подпапками (папки рабочего стола, Мой компьютер, Корзина). Для выбора папки в меню пуск используется CSIDL_STARTMENU вместо CSIDL_DESKTOP.uses ShlObj;
procedure CallBack(wnd: hWnd; uMsg: UINT; lParam, lpData: LParam) stdcall;
begin
SendMessage(wnd, BFFM_ENABLEOK, 0, 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
bi: TBrowseInfo;
s: PChar;
PIDL, ResPIDL: PItemIDList;
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_DESKTOP, PIDL);
s := StrAlloc(128);
bi.hwndOwner := Form1.Handle;
bi.pszDisplayName := s;
bi.lpszTitle := 'Выбор прапки';
bi.pidlRoot := PIDL;
bi.lpfn := addr(CallBack);
ResPidl := SHBrowseForFolder(BI);
SHGetPathFromIDList(ResPidl, s);
Form1.Caption := s;
end;
главная страница задать вопрос email: delphi4all@narod.ru
|