![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Исключения! [D4]
Катерина © (2005-12-26 11:37:00)Запуталась совсем с сохранением текстового файла. Помогите пожалуйста.
...
type
SaveException = class (Exception)
...
procedure TForm1.SaveAsBtnClick(Sender: TObject);
begin
if SaveDialog1.Execute then begin
try
RichEdit1.Lines.SaveToFile (SaveDialog1.FileName);
if FileExists(SaveDialog1.FileName) then
raise SaveException.Create ('Файл существует!заменить?');
except on E: SaveException do
begin
Msg := MessageDlg (E.Message, mtWarning, [mbYes, mbNo], 0);
if Msg = mrYes then
RichEdit1.Lines.SaveToFile (SaveDialog1.FileName);
end;
end;
end
else exit;
end;
в итоге все сохраняет, но если надо существующий файл заменить новым, то 2 раза спрашивает "Файл существует.Заменить?"как после первого выйти из сохранения? все равно 2 раз не меняет ничего. даже если нажать "ДА", то файл уже сохранен. В чем ошибка?
evvcom (2005-12-26 12:09:00) [1]
> SaveException = class (Exception)
Классы исключений принято называть именами, начинающимися с "Е", т.е. ESaveException в данном случае. Рекомендую этого не игнорировать.
> raise SaveException.Create ('Файл существует!заменить?');
> exit;
exit-то здесь зачем? По исключению и так выскочим сразу на except в SaveAsBtnClick.
umbra (2005-12-26 11:53:00) [2]
type
SaveException = class (Exception);
procedure SafeSave(name: string);
begin
if FileExists(name) then
begin
raise SaveException.Create ('Файл существует!заменить?');
exit;
end;
RichEdit1.Lines.SaveToFile (name);
end;
procedure TForm1.SaveAsBtnClick(Sender: TObject);
begin
if SaveDialog1.Execute then begin
try
SafeSave(SaveDialog1.FileName);
except on E: SaveException do
begin
Msg := MessageDlg (E.Message, mtWarning, [mbYes, mbNo], 0);
if Msg = mrYes then
RichEdit1.Lines.SaveToFile (SaveDialog1.FileName);
end;
end;
end
else exit;
end;
Dmitrij_K (2005-12-26 11:49:00) [3]В SaveDialog есть параметр который за это отвечает.
что-то типа такого - OverwritePrompt