Delphi overwrite existing file on save dialog

I am using the TSaveDialog component to save a file from a button click. However, I am having trouble with saving on an existing file name. Generally, when you want to save over an existing file in Windows, a message box pops up asking you if you really want to overwrite the file. This is not the case with the TSaveDialog component and it will go ahead and write over the file without asking.

I was hoping there was a TSaveDialog function or event that I could use but I have not seen anything that looks like it handles this. So it could be that I simplely haven't found the correct method to use. If there is an event, I could use

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

but the events TSaveDialog has are OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange...

My question is, how do I pop up a message box to ask the user if they want to overwrite the existing file using the TSaveDialog component. Thanks.

Answers


Use saveDialog.Options := saveDialog.Options + [ofOverwritePrompt] before you execute the dialog. Then it will ask if the user wants to overwrite the file or not.

But you do know that the TSaveDialog does not actually save the file, right? It just displays the standard Windows File Save dialog, and then returns the path the user chose. You have to save the file manually using this path, e.g. MyStringList.SaveToFile(saveDialog.FileName).


Need Your Help

TI Calculator Programming, Won't Display Graph?

ti-basic

So I'm making an achievement system in a game, and I'm having a little trouble. You click on achievements, then trophy case, and then inspect for a description of each achievement. I got this working

TableView in QT5 doesn't show MYSQL Data, just empty rows are shown

c++ mysql qt tableview qt5

I am showing you my problem by showing a screen shot. This seems easier to me.