Перезапись Delphi существующий файл на диалоговом окне сохранения

Я использую компонент TSaveDialog, чтобы сохранить файл от нажатия кнопки. Однако я испытываю затруднения экономить на существующем имени файла. Обычно, когда Вы хотите сохранить по существующему файлу в Windows, окно сообщения открывается, спрашивая Вас, если Вы действительно хотите перезаписать файл. Дело обстоит не так с компонентом TSaveDialog и это будет идти вперед и переписывать файл без спроса.

Я надеялся, что была функция TSaveDialog или событие, которое я мог использовать, но я не видел ничего, что похоже на него, обрабатывает это. Таким образом, могло случиться так, что я просто не нашел, что корректный метод использует. Если существует событие, я мог бы использовать

if FileExists(saveDialog.FileName) then
  //and so forth

но события TSaveDialog имеют, OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange...

Мой вопрос, как я открываюсь окно сообщения для выяснения у пользователя, если они хотят перезаписать существующий файл с помощью компонента TSaveDialog.Спасибо.

5
задан AfterImage 31 March 2010 в 15:05
поделиться

1 ответ

Используйте saveDialog.Options: = saveDialog.Options + [ofOverwritePrompt] перед выполнением диалогового окна. Затем он спросит, хочет ли пользователь перезаписать файл или нет.

Но вы знаете, что TSaveDialog на самом деле не сохраняет файл, верно? Он просто отображает стандартный диалог Windows File Save, а затем возвращает путь, выбранный пользователем. Вы должны сохранить файл вручную, используя этот путь, например MyStringList.SaveToFile (saveDialog.FileName) .

16
ответ дан 18 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: