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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2009, 14:02
smart_man smart_man вне форума
Прохожий
 
Регистрация: 08.12.2008
Сообщения: 40
Репутация: 10
По умолчанию Select-диалог

Возможно ли, и если да то как, превратить стандартный OpenDialog или SaveDialog в Select-диалог, который должен только выбирать место, куда будут сохранены ранее выбранные файлы (то есть такое окно, в котором я могу выбрать путь, куда экспортировать файлы и чтобы больше ничего нельзя было менять, то есть строки с названием файла вообще не должно быть).
Ответить с цитированием
  #2  
Старый 29.04.2009, 16:06
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Есть специальная функция Win32 API, показвающая диалог выбора папки. Называется SHBrowseForFolder. Возвращает идентификатор, который можно преобразовать в путь с помощью функции SHGetPathFromIDList.
Вот например, готовая функция, отображающая диалог выбора пути и возвращающая строку с терминальным нулем, в которой записывается путь к выбранной папке.
Код:
function TFaceForm.ShowChooseDirDialog: PChar;
const
  TitleName = 'Укажите папку назначения'; // это подсказка, которая будет выведена в диалоге
var
  lpItemID: PItemIDList;
  BrowseInfo: TBrowseInfo;
  DisplayName: array[0..MAX_PATH] of Char;
  TempPath: array[0..MAX_PATH] of Char;
begin
  Result := nil;
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  BrowseInfo.hwndOwner := FaceForm.Handle;
  BrowseInfo.pszDisplayName := @DisplayName;
  BrowseInfo.lpszTitle := @TitleName[1];
  BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemID <> nil then
  begin
    SHGetPathFromIDList(lpItemID, TempPath);
    Result := TempPath;
    GlobalFreePtr(lpItemID);
  end;
end;
Для использования нужно подключить модуль ShlObj.pas.
Не подойдет?
Ответить с цитированием
  #3  
Старый 29.04.2009, 16:20
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Можно использовать стандартую функцию SelectDirectory из модуля FileCtrl , которая делает то же самое. Не приходиться писать то, что уже написано
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #4  
Старый 29.04.2009, 16:36
smart_man smart_man вне форума
Прохожий
 
Регистрация: 08.12.2008
Сообщения: 40
Репутация: 10
По умолчанию

Видимо у нас разные версии delphi (у меня 7), потому как не могу найти ни SHBrowseForFolder ни SelectDirectory.
Ответить с цитированием
  #5  
Старый 29.04.2009, 16:48
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

У меня тоже 7 версия.
Добавить необходимые модули не забыл ?
Для использования функции SelectDirectory нужен модуль FileCtrl
Для SHBrowseForFolder - ShlObj
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #6  
Старый 29.04.2009, 16:57
smart_man smart_man вне форума
Прохожий
 
Регистрация: 08.12.2008
Сообщения: 40
Репутация: 10
По умолчанию

Это те которые лежат в ...\Borland\Delphi7\Source\Vcl\ ?
или в ...\Borland\Delphi7\Lib\Debug\ ?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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