Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Исключения!   Найти похожие ветки 

 
Катерина   (2005-12-26 11:37) [0]

Запуталась совсем с сохранением текстового файла. Помогите пожалуйста.

...
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 раз не меняет ничего. даже если нажать "ДА", то файл уже сохранен. В чем ошибка?


 
Dmitrij_K   (2005-12-26 11:49) [1]

В SaveDialog есть параметр который за это отвечает.
что-то типа такого - OverwritePrompt


 
umbra ©   (2005-12-26 11:53) [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;


 
evvcom ©   (2005-12-26 12:09) [3]


> SaveException = class (Exception)

Классы исключений принято называть именами, начинающимися с "Е", т.е. ESaveException в данном случае. Рекомендую этого не игнорировать.

>    raise SaveException.Create ("Файл существует!заменить?");
>    exit;

exit-то здесь зачем? По исключению и так выскочим сразу на except в SaveAsBtnClick.



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1135621862
Mahab
2005-12-26 21:31
2006.01.15
Jpeg


11-1116743828
MaFon
2005-05-22 10:37
2006.01.15
Минимальный размер exe


14-1134978957
Чапаев
2005-12-19 10:55
2006.01.15
CDMA-телефон и Internet callback


14-1134672016
YurikGL
2005-12-15 21:40
2006.01.15
Друг попросил задачку решить


14-1134864545
Германн
2005-12-18 03:09
2006.01.15
Exception в доп. потоке