Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2009, 18:25   #1
androidvsu
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 39
По умолчанию Формат из SaveDialog

Подскажите метод получения формата выбранного пользователем в SaveDialog!


Т.е. есть приложение, которое по нажатию на кнопку вызывает стандартный диалог сохранения, который имеет несколько фильтров, необходимо узнать какой из форматов выбрал пользователь!
androidvsu вне форума Ответить с цитированием
Старый 12.02.2009, 18:40   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

SaveDialog1.FilterIndex - индекс выбранного пользователем фильтра.
Arigato вне форума Ответить с цитированием
Старый 18.02.2009, 19:39   #3
androidvsu
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 39
По умолчанию

SaveDialog1.FilterIndex - дает номер выбранного фильтра, т.е. чтобы сохранят файл с нужным тебе расширением нужно дополнительно хранить массив строк, связанных с фильтрами, или вырезать из строки SaveDialog1.Filter необходимый фильтр. Есть ли более рациональный способ, желательно средствами самих компонентов?
androidvsu вне форума Ответить с цитированием
Старый 18.02.2009, 20:22   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Есть ли более рациональный способ, желательно средствами самих компонентов?
Не знаю такого. А чем плох индекс, по его значению можно получить и сам фильтр.
Arigato вне форума Ответить с цитированием
Старый 19.02.2009, 08:12   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
 if savedialog1.Execute then
 begin
  //..........
  s:=ExtractFileExt(savedialog1.FileName);
 end;
end;
SERG1980 вне форума Ответить с цитированием
Старый 19.02.2009, 17:00   #6
androidvsu
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 39
По умолчанию

Нет, не совсем то! ExtractFileExt(...), возвращает расширение, если ты его дописываешь к имени файла (т.е., например, для сохранения файла пишешь имя_файла.txt), а мне нужно получить какое расширение выбрал пользователь в самом диалоге!
androidvsu вне форума Ответить с цитированием
Старый 19.02.2009, 19:22   #7
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Насколько я зная через SaveDialog этого сделать нельзя. Придется вручную проверять значение FilterIndex и на основе него менять расширение функцией ChangeFileExt.

Код:
case FilterIndex of
0: FileName := ChangeFileExt(FileName, '.txt');
***
Но есть еще вариант когда пользователь сам ввёл одно расширение, а фильтр выбрал другой.
Armorer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из StringGrid в файл при помощи SaveDialog NecroSlider Помощь студентам 5 17.04.2011 18:45
Проблемы с сохранением файла через SaveDialog Волк Общие вопросы Delphi 4 05.02.2009 04:27
Проблема с SaveDialog boostman Общие вопросы Delphi 11 16.06.2008 14:40
SaveDialog не сохраняет правильно Shouldercannon Общие вопросы Delphi 7 16.06.2008 02:14