|
Вопрос # 2 266/ вопрос открыт / |
|
Здравствуйте, эксперты! Не могу решить такую проблему: надо чтобы при нажатии кнопки Открывалось окно "обзор папок" (картинка прикреплена), а потом в едит вывести путь к тому коталогу, который выбрал пользователь.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Ученый (статус: 8-ой класс)
Вопрос отправлен: 5 января 2009, 11:31
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Как на счёт такой функции?
function BrowseForFolder(Handle: THandle;
const Title: string;
var Dir: string): Boolean;
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);
with BrowseInfo do
begin
hwndOwner:= Handle;
pszDisplayName:= @DisplayName;
lpszTitle:= PChar(Title);
//ulFlags:= BIF_RETURNONLYFSDIRS + BIF_EDITBOX;
ulFlags := BIF_RETURNONLYFSDIRS or
$0040 or
BIF_EDITBOX or
BIF_STATUSTEXT;
end;
lpItemID:= SHBrowseForFolder(BrowseInfo);
Result:= lpItemId <> nil;
if Result
then begin
SHGetPathFromIDList(lpItemID, TempPath);
Dir:= TempPath;
GlobalFreePtr(lpItemID);
end;
end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 января 2009, 22:19
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 5 января 2009, 22:25; участников в обсуждении: 4.
|
Ученый (статус: 8-ой класс), 5 января 2009, 12:09 [#2]:
Большое спасибо!! Это что мне и надо! Только одно плохо , там нет кнопки "создать папку"...
|
|
Ерёмин А.А. (статус: *Администратор), 5 января 2009, 12:53 [#3]:
Пупкин В.В.: может уже в эксперты перейдёте и будете ответы давать?
|
|
min@y™ (статус: Доктор наук), 5 января 2009, 22:25 [#4]:
Забыл добавить. Пример использования функции:
procedure TMainForm.PathEditButtonClick(Sender: TObject);
var
Dir: string;
begin
case TControl(Sender).Tag of
// Выбор каталога кэша
0: if BrowseForFolder(Self.Handle, 'Каталог кэша Firefox', Dir)
then PathEdit.Text:= ExcludeTrailingPathDelimiter(Dir);
// Выбор каталога экспорта
1: if BrowseForFolder(Self.Handle, 'Каталог экспорта файлов', Dir)
then ExtractEdit.Text:= ExcludeTrailingPathDelimiter(Dir);
end; //case
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|