2010-03-31 103 views
5

我正在使用TSaveDialog组件来保存按钮单击文件。但是,我在保存现有文件名时遇到问题。一般来说,当你想在Windows中保存现有的文件时,弹出一个消息框询问你是否真的要覆盖文件。 TSaveDialog组件并不是这种情况,它会继续前进并在不询问的情况下覆盖文件。德尔福覆盖保存对话框上的现有文件

我希望有一个TSaveDialog函数或事件,我可以使用,但我没有看到任何看起来像它处理这个。所以可能是我简单地没有找到正确的方法来使用。如果有一个事件,我可以用

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

但TSaveDialog有事件OnCanClose,OnClose中,OnFolderChange,OnIncludeItem,OnSelectionChange,OnShow中,OnTypeChange ...

我的问题是,我该如何弹出打开一个消息框询问用户是否要使用TSaveDialog组件覆盖现有文件。谢谢。

回答

16

在执行对话框之前使用saveDialog.Options := saveDialog.Options + [ofOverwritePrompt]。然后它会询问用户是否要覆盖文件。

但是你知道TSaveDialog实际上并不是保存的文件,对吗?它只显示标准的Windows文件保存对话框,然后返回用户选择的路径。您必须使用此路径手动保存文件,例如MyStringList.SaveToFile(saveDialog.FileName)

+1

@Andreas呃!这整个过程是一个财产?那么,我有一种感觉,那就是简单。 我明白你的答案的第二部分。我有这个功能工作。感谢您的帮助和快速响应。 – AfterImage 2010-03-31 15:22:12