Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.01.2014, 15:09
Aleks99 Aleks99 вне форума
Прохожий
 
Регистрация: 06.01.2014
Сообщения: 21
Версия Delphi: 10
Репутация: 10
По умолчанию Диалог выбора папок

Доброго времяни суток. В своей программе использую диолог выбора каталога. Нужно сделать чтоб она открывалась на последнем ранее выбраном каталоге. Для этого перед запуском диалога в pidlRoot эту папку(путь) указать.
Как мне в pidlRoot поместить строку String.
Я так понял, что нужно bi.pidlRoot := PIDL; в место PIDL ввести 'C:\Program Files'

Код:
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); 
{bi.ulFlags флаги, которые задают режим отображения диалога:
  BIF_BROWSEFORCOMPUTER - Возвратить только компьютеры. Если пользователь выбрал что-то отличное от компьютеров, то кнопка OK останется серой.
  BIF_BROWSEFORPRINTER - Возвратить только принтеры. Если пользователь выбрал что-
то отличное от принтеров, то кнопка OK останется серой.
  BIF_RETURNONLYFSDIRS - Возвратить только папки файловой системы. Если пользователь выберет папки, которые не являются частью файловой системы, то кнопка OK останется серой. Это необходимо для того если ваша программа не работает с виртуальными папками вроде "Панель управления".
  BIF_BROWSEINCLUDEFILES - Диалог просмотра будет отображать файлы вместе с директориями.
  BIF_DONTGOBELOWDOMAIN - Не включать сетевые папки Доменного уровня ниже, чем в TreeView контроле.
  BIF_RETURNFSANCESTORS - В качестве выбора допустимы только объекты, представленные в файловой системе.
  BIF_STATUSTEXT - Включает область статуса в блок диалога. Функция может установить текст посылая сообщения блоку диалога.
  BIF_EDITBOX - В диалоговом окне будет присутствовать строка редактирования, таким образом пользователь может набрать имя элемента.
  BIF_VALIDATE - Если пользователь введёт неверное имя в строке редактирования, то диалоговое окно вызовет функцию обратного вызова приложения по сообщению BFFM_VALIDATEFAILED.}
  ResPidl := SHBrowseForFolder(BI); 
  SHGetPathFromIDList(ResPidl, s); 
  Form1.Caption := s; 
end;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025