2010-03-31 6 views
5

TSaveDialog 구성 요소를 사용하여 버튼 클릭으로부터 파일을 저장합니다. 그러나 기존 파일 이름을 저장하는 데 문제가 있습니다. 일반적으로 Windows에서 기존 파일을 저장하려면 파일을 정말로 덮어 쓸지 묻는 메시지 상자가 나타납니다. 이것은 TSaveDialog 구성 요소의 경우가 아니며 묻지 않고 파일을 덮어 쓰게됩니다.Delphi가 저장 대화 상자에서 기존 파일을 덮어 씁니다.

내가 사용할 수있는 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 Ugh! 이 모든 시간 동안 재산 이었어? 글쎄, 나는 그것이 단순한 것이라고 느끼고 있었다. 답변에 대한 두 번째 부분을 이해합니다. 나는 그 기능을 작동했다. 도움과 빠른 응답에 감사드립니다. – AfterImage

관련 문제