我正在使用TSaveDialog组件来保存按钮单击的文件。但是,我在保存现有文件名时遇到问题。通常,当您想要在Windows中保存现有文件时,会弹出一个消息框,询问您是否确实要覆盖该文件。 TSaveDialog组件不是这种情况,它将继续写入文件而不会询问。
我希望有一个我可以使用的TSaveDialog函数或事件,但我还没有看到任何看起来像它处理它的东西。所以我可能很难找到正确的方法来使用它。如果有事件,我可以使用
if FileExists(saveDialog.FileName) then
//and so forth
但是事件TSaveDialog有OnCanClose,OnClose,OnFolderChange,OnIncludeItem,OnSelectionChange,OnShow,OnTypeChange ......
我的问题是,如何弹出一个消息框询问用户是否要使用TSaveDialog组件覆盖现有文件。感谢。
答案 0 :(得分:16)
在执行对话框之前使用saveDialog.Options := saveDialog.Options + [ofOverwritePrompt]
。然后它会询问用户是否要覆盖该文件。
但是你知道TSaveDialog实际上并没有保存文件,对吧?它只显示标准的Windows文件保存对话框,然后返回用户选择的路径。您必须使用此路径手动保存文件,例如MyStringList.SaveToFile(saveDialog.FileName)
。