2010-03-31 4 views
5

Sto utilizzando il componente TSaveDialog per salvare un file da un clic del pulsante. Tuttavia, ho problemi con il salvataggio su un nome di file esistente. In genere, quando si desidera salvare su un file esistente in Windows, viene visualizzata una finestra di messaggio che chiede se si desidera veramente sovrascrivere il file. Questo non è il caso con il componente TSaveDialog e andrà avanti e scriverà il file senza chiedere.Delphi sovrascrive il file esistente nella finestra di dialogo di salvataggio

Speravo che esistesse una funzione o un evento TSaveDialog che potrei usare ma non ho visto nulla che assomigli a questo. Quindi potrebbe essere che non ho trovato il metodo corretto da usare. Se c'è un evento, potrei usare

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

ma gli eventi TSaveDialog ha sono OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange ...

La mia domanda è, come faccio pop una finestra di messaggio per chiedere all'utente se desidera sovrascrivere il file esistente usando il componente TSaveDialog. Grazie.

risposta

16

Utilizzare saveDialog.Options := saveDialog.Options + [ofOverwritePrompt] prima di eseguire la finestra di dialogo. Quindi chiederà se l'utente desidera sovrascrivere il file o meno.

Ma sai che TSaveDialog in realtà non è risparmi il file, giusto? Visualizza solo la finestra di dialogo standard di salvataggio file di Windows, quindi restituisce il percorso scelto dall'utente. Devi salvare manualmente il file utilizzando questo percorso, ad es. MyStringList.SaveToFile(saveDialog.FileName).

+1

@Andreas Ugh! Era una proprietà tutto questo tempo? Bene, ho avuto la sensazione che fosse qualcosa di semplice. Capisco la seconda parte della risposta. Ho avuto quella funzionalità funzionante. Grazie per l'aiuto e la risposta rapida. – AfterImage