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

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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам