2010-03-31 105 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