2010-03-31 23 views
5

ich die TSaveDialog Komponente bin mit einer Datei von einem Button-Klick zu speichern. Ich habe jedoch Probleme beim Speichern eines vorhandenen Dateinamens. Im Allgemeinen, wenn Sie eine vorhandene Datei in Windows speichern über wollen, erscheint eine entsprechende Meldung auf dem Sie gefragt werden, ob Sie wirklich die Datei überschrieben werden soll. Dies ist nicht der Fall mit der TSaveDialog-Komponente und es wird weitergehen und über die Datei schreiben, ohne zu fragen.Delphi überschreiben vorhandene Datei auf Speichern-Dialog

Ich habe gehofft, eine TSaveDialog Funktion oder ein Ereignis war, die ich verwenden könnte, aber ich habe nichts gesehen, es sieht aus wie diese behandelt. Es könnte also sein, dass ich die richtige Methode einfach nicht gefunden habe. Wenn es ein Ereignis ist, konnte ich

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

verwenden, aber die Ereignisse hat TSaveDialog sind OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange ...

Meine Frage ist, wie kann ich Pop ein Nachrichtenfeld, um den Benutzer zu fragen, ob er die vorhandene Datei mit der TSaveDialog-Komponente überschreiben möchte. Vielen Dank.

Antwort

16

Verwenden saveDialog.Options := saveDialog.Options + [ofOverwritePrompt] bevor Sie den Dialog ausführen. Dann wird gefragt, ob der Benutzer die Datei überschreiben möchte oder nicht.

Aber Sie wissen, dass der TSaveDialog nicht wirklich speichern die Datei, richtig? Es zeigt nur den Standarddialog zum Speichern von Windows-Dateien an und gibt dann den Pfad zurück, den der Benutzer gewählt hat. Sie müssen die Datei manuell mit diesem Pfad speichern, z. MyStringList.SaveToFile(saveDialog.FileName).

+1

@Andreas Ugh! Es war die ganze Zeit eine Eigenschaft? Nun, ich hatte das Gefühl, es war etwas Einfaches. ich den zweiten Teil Ihrer Antwort verstehen. Ich hatte diese Funktionalität funktionierend. Danke für die Hilfe und schnelle Antwort. – AfterImage

Verwandte Themen