Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SHBrowseForFolder [D5, WinXP]


RainKM ©   (2004-05-02 17:15:00) 

Мастера помогите!!!!
SHBrowseForFolder эта функция ввыводит стандартный диалог для вибора каталога, как мне узнать что пользователь вибрал в этом диалоге? Тоесть можно ли витянуть из этой функции путь к папке которую вибрал юзер, чтоб скажем вивести его в едит.


jel   (2004-05-02 22:25:00) [1]

2 moderator

Sorry за дубль


jel   (2004-05-02 22:24:00) [2]

Вот рабочий пример.


function SelectDirectory(titlename : string; Handle : integer) : string;
var
 lpItemID : PItemIDList;
 BrowseInfo : TBrowseInfo;
 DisplayName : array[0..MAX_PATH] of char;
 TempPath : array[0..MAX_PATH] of char;
begin
 FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
 BrowseInfo.hwndOwner := Handle;
 BrowseInfo.pszDisplayName := @DisplayName;
 BrowseInfo.lpszTitle := PChar(TitleName);
 BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
 lpItemID := SHBrowseForFolder(BrowseInfo);
 if lpItemId <> nil then begin
    SHGetPathFromIDList(lpItemID, TempPath);
    SelectDirectory := TempPath;
 end else SelectDirectory := '';
end;


jel   (2004-05-02 22:24:00) [3]

Удалено модератором


DVM   (2004-05-02 20:33:00) [4]


> Так не канает, правда не знаю почему, жаль ....

Что значит не канает. Какая ошибка? Что получается в результате?


RainKM   (2004-05-02 18:38:00) [5]

Так не канает, правда не знаю почему, жаль ....


DVM   (2004-05-02 17:53:00) [6]

var
a:TBrowseInfo;
begin
...
edit1.Text:=a.pszDisplayName


RainKM   (2004-05-02 17:48:00) [7]

pszDisplayName -  PAnsiChar пробовал не полечается


RainKM   (2004-05-02 17:48:00) [8]

Смотря как вы пишите. Запись какая?


DVM   (2004-05-02 17:38:00) [9]


> так не пройдет, pszDisplayName это же поле в рекорде, как
> именно нужно пристоить??

edit1.text:=Запись.pszDisplayName;


RainKM   (2004-05-02 17:34:00) [10]

какой переменной его присвоить, вернее как?
edit1.text:=pszDisplayName;
так не пройдет, pszDisplayName это же поле в рекорде, как именно нужно пристоить??


Anatoly Podgoretsky   (2004-05-02 17:25:00) [11]

pszDisplayName


Наверх

Титульная страница Поиск, карта сайта Написать письмо