|
Вопрос # 3 330/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты!
Подскажите пожалуйста с помощью какого компонента(диалоговое окно) можно указать путь к директории (например d:\win\sys\) и передать его в Edit?
(компонент SaveDialog1 требует указать и имя файла).
 |
Вопрос задал: djemov (статус: Посетитель)
Вопрос отправлен: 27 октября 2009, 16:24
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, djemov!
вот где то так
uses
FileCtrl, // нужно добавить для SelectDirectory
Forms, Dialogs;
//
procedure TForm1.ButtonClick1(Sender: TObject);
var
chosenDirectory : string;
begin
// Ask the user to select a required directory, starting with C:
if SelectDirectory('Select a directory', 'C:\', chosenDirectory)
then ShowMessage('Chosen directory = '+chosenDirectory)
else ShowMessage('Directory selection aborted');
end;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 27 октября 2009, 16:38
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: DNK
Здравствуйте, djemov!
В FileCtrl была полезная функция SelectDirectory. Можно также создать свой диалог с компонентами DyrectoryListBox и DriveComboBox с вкладки Win 3.1.
 |
Ответ отправил: DNK (статус: Студент)
Время отправки: 27 октября 2009, 16:42
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 28 октября 2009, 08:18; участников в обсуждении: 2.
|
djemov (статус: Посетитель), 27 октября 2009, 17:26 [#1]:
Всем спасибо!!!
|
|
min@y™ (статус: Доктор наук), 28 октября 2009, 08:18 [#2]:
Мож вот так половчее будет:
// Вывод диалога выбора директории.
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;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
31 января 2011, 19:36: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|