Для вывода диалога "Обзор папок" существует функция SHBrowseForFolder. Для выбора того, какие папки будут выведены в диалоге, используется функция SHGetSpecialFolderLocation. В этой программе выводится рабочий стол со всеми подпапками (папки рабочего стола, Мой компьютер, Корзина). Для выбора папки в меню пуск используется CSIDL_STARTMENU вместо CSIDL_DESKTOP.
Code: |
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; |
Автор советов: Даниил Карапетян
e-mail: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Автор справки: Алексей Денисов
e-mail: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!