showmessage messagedlg example dialogs delphi dialog delphi-7

messagedlg - dialogs delphi



Delphi sobrescribe el archivo existente en el cuadro de diálogo guardar (1)

Estoy usando el componente TSaveDialog para guardar un archivo desde un clic de botón. Sin embargo, tengo problemas para guardar un nombre de archivo existente. En general, cuando desea guardar más de un archivo existente en Windows, aparece un cuadro de mensaje que le pregunta si realmente desea sobrescribir el archivo. Este no es el caso con el componente TSaveDialog y continuará y escribirá sobre el archivo sin preguntar.

Esperaba que hubiera una función o evento de TSaveDialog que podría usar, pero no he visto nada que parezca que maneja esto. Entonces podría ser que simplemente no he encontrado el método correcto para usar. Si hay un evento, podría usar

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

pero los eventos que tiene TSaveDialog son OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange ...

Mi pregunta es, ¿cómo puedo abrir un cuadro de mensaje para preguntarle al usuario si desea sobrescribir el archivo existente utilizando el componente TSaveDialog? Gracias.


Use saveDialog.Options := saveDialog.Options + [ofOverwritePrompt] antes de ejecutar el diálogo. Luego se le preguntará si el usuario desea sobrescribir el archivo o no.

Pero usted sabe que el TSaveDialog en realidad no guarda el archivo, ¿verdad? Simplemente muestra el diálogo estándar Guardar archivo de Windows y luego devuelve la ruta que el usuario eligió. MyStringList.SaveToFile(saveDialog.FileName) guardar el archivo manualmente usando esta ruta, por ejemplo, MyStringList.SaveToFile(saveDialog.FileName) .