powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / где бы хороший savedialog найти?
10 сообщений из 10, страница 1 из 1
где бы хороший savedialog найти?
    #39536190
pgiw99oeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача стоит сохранить файл из базы на диск, имя файла с расширением тоже берется из базы
и тут - опа! - обычный savedialog зависит от настроек виндовса
например, может не отображать расширение файла
возможны варианты
1 пользователь не меняет имени файла, просто сохраняет файл с тем именем которое взято из базы, тогда расширения не видно, но файл сохраняется с этим расширением (и это хорошо)
2 пользователь может поменять имя файла и в этом случае расширение исчезает, файл сохраняется без расширения (и это не есть хорошо)

учить пользователей как действовать при сохранении файла как-то неохота, слишком их много
менять настройки виндовса на компах тоже как-то не очень хорошо
есть вариант поставить галочку "использовать старый savedialog" но у него вид какой-то неказистый... а желательно, чтобы savedialog выглядел как обычно в виндовсе
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536191
pgiw99oeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. желательно, чтобы диалог выглядел как в виндовсе, но отображал расширение файла всегда, независимо от настроек виндовса
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536192
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я у себя исправляю расширение в SaveDialog'е.
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536193
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Псевдокод:

Код: pascal
1.
2.
3.
4.
5.
 if SaveDialog1.Execute then
 begin
  SaveDialog1.FileName := FixFileExt(SaveDialog1.FileName, 'mp4');
  ....
 end;



FixFileExt на усмотрение - как удобно. Можно через временную переменную, но мне так удобнее.
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536194
pgiw99oeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonЯ у себя исправляю расширение в SaveDialog'е.запоминаешь исходное расширение, а потом при необходимости прибавляешь к строке?
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536204
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pgiw99oeoзадача стоит сохранить файл из базы на диск, имя файла с расширением тоже берется из базы
и тут - опа! - обычный savedialog зависит от настроек виндовса
например, может не отображать расширение файла
возможны варианты
1 пользователь не меняет имени файла, просто сохраняет файл с тем именем которое взято из базы, тогда расширения не видно, но файл сохраняется с этим расширением (и это хорошо)
2 пользователь может поменять имя файла и в этом случае расширение исчезает, файл сохраняется без расширения (и это не есть хорошо)

учить пользователей как действовать при сохранении файла как-то неохота, слишком их много
менять настройки виндовса на компах тоже как-то не очень хорошо
есть вариант поставить галочку "использовать старый savedialog" но у него вид какой-то неказистый... а желательно, чтобы savedialog выглядел как обычно в виндовсе

Ну, напиши функцию что-то типа:
Код: pascal
1.
function MySaveDialog(var aFileName : string; const aInitFolder, aFileExt: string ) :boolean;


- в которой определяй текущую версию винды и по итогам используй стандартные диалоги - либо TSaveDialog, либо TFileSaveDialog.
И там же, если надо, смотри на расширение, которое ввел юзер и меняй/добавляй его:
Код: pascal
1.
2.
  if not SameText(ExtractFileExt(aFileName ), '.abc') then
    aFileName := aFileName + '.abc';
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536205
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pgiw99oeoпользователь может поменять имя файла и в этом случае расширение исчезает,
файл сохраняется без расширения (и это не есть хорошо)
Назначить DefaultExt было бы слишком просто. Напиши свой собственный TSaveDialog.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536249
под ван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
я уже пытался - падает, начиная с Висты. Видимо, что-то изменили. Сейчас форкнул сам FP, и переписываю его с нуля, чтобы в нём уже переписать SD.
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536257
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под ванпадает

Отлаживать не пробовал?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
где бы хороший savedialog найти?
    #39536259
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DefaultExt корректно работает выше висты, вы чего. Все правильно Dimitry Sibiryakov сказал -- выставление расширения по умолчанию автоматом решит проблему топикстартера.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / где бы хороший savedialog найти?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]