![]() |
Сохранение в файл
Делал так, файл не перезаписывался, хотя имхо должен:
Код:
if SaveDialog.Execute then |
Цитата:
Может вы попросту забыли поставить после end ";"? Код:
then Exit; |
|
Цитата:
Цитата:
Цитата:
Либо вы вставили здесь Цитата:
|
эх.... ок, вот начальная процедура
Код:
procedure TMainForm.SaveButtonClick(Sender: TObject); Код:
procedure TMainForm.SaveButtonClick(Sender: TObject); |
Цитата:
Цитата:
Вот во втором варианте вы вписали сохранение файла и в ту ветку, которая выполняется при существовании файла, поэтому у вас и начало работать. |
Цитата:
|
Если вы используете "Exit", то зачем столько "else", не проще было бы так:
Код:
procedure TMainForm.SaveButtonClick(Sender: TObject); |
Цитата:
|
Ну да...., не проще ли, блок if not (FileExists(..))..., а в нем if SaveDialog.Execute...
|
Цитата:
И что это за бред? Сначала проверка на существование файла(какого непонятно), а потом уже проверка выполнения SaveDialog? |
Цитата:
|
Цитата:
|
Цитата:
1. SaveDialog имеет свойства, среди которых имеется OfOverwritePrompt. Установка его в true (в компоненте) или программно (SaveDialog.Options := SaveDialog.Options + [ofOverwritePrompt]) вызывает стандартный диалог ("Файл уже существует. Заменить его?"). 2. Файлы связанные с программой, при сохранении не нужно "тыкать" куда вздумается (или в папке с программой, или в папке "Пользователя" (что особенно актуально для работы в Windows 7 >), как и принуждать, каждый раз делать выбор (лучше предусмотреть выбор - "По умолчанию", или "Сохранить как..."). Свойств InitialDir и/или FileName для этого вполне хватает. 3. Проверять существование файла и выводить свой диалог, необходимо или при сохранении по умолчанию - без вызова SaveDialog, или при открытии файла. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Добавьте переключатель (CheckBox) и обрабатывайте - или сохранение по умолчанию (с проверкой существования файла и запроса на его перезапись), или свобода выбора для пользователя - вызов SaveDialog. |
Цитата:
|
Время: 19:36. |
Время: 19:36.
© OSzone.net 2001-