2010-03-31 10 views
5

Używam komponentu TSaveDialog do zapisania pliku z kliknięcia przycisku. Mam jednak problem z zapisaniem istniejącej nazwy pliku. Zwykle, gdy chcesz zapisać istniejący plik w systemie Windows, pojawi się okienko z pytaniem, czy naprawdę chcesz zastąpić plik. Tak nie jest w przypadku komponentu TSaveDialog, który będzie pisać dalej bez pytania.Delphi zastępuje istniejący plik w oknie dialogowym zapisu

Miałem nadzieję, że istniała funkcja lub zdarzenie TSaveDialog, które mogłem użyć, ale nie widziałem niczego, co wyglądałoby, jakby sobie z tym poradziło. Może się zdarzyć, że prostopadle nie znalazłem prawidłowej metody użycia. Jeśli nie jest to wydarzenie, mogę używać

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

ale wydarzenia TSaveDialog ma to OnCanClose, onClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange ...

Moje pytanie brzmi, jak mogę pop do okna komunikatu, aby zapytać użytkownika, czy chce zastąpić istniejący plik przy użyciu komponentu TSaveDialog. Dzięki.

Odpowiedz

16

Przed wykonaniem okna dialogowego użyj saveDialog.Options := saveDialog.Options + [ofOverwritePrompt]. Następnie zapyta, czy użytkownik chce nadpisać plik, czy nie.

Ale wiesz, że TSaveDialog faktycznie nie zapisać plik, prawda? Wyświetla standardowe okno dialogowe Windows File Save, a następnie zwraca ścieżkę wybraną przez użytkownika. Musisz ręcznie zapisać plik przy użyciu tej ścieżki, np. MyStringList.SaveToFile(saveDialog.FileName).

+1

@Andreas Ugh! To była własność przez cały ten czas? Cóż, miałem przeczucie, że to coś prostego. Rozumiem drugą część twojej odpowiedzi. Miałem taką funkcjonalność. Dzięki za pomoc i szybką odpowiedź. – AfterImage

Powiązane problemy