Главная страница
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.024 c
1-1134130477
Антон1209
2005-12-09 15:14
2006.01.15
Скажите как правильнее написать процедуру добавления значения к м


14-1135090683
Vlad Oshin
2005-12-20 17:58
2006.01.15
Рассказ. Забавный случай.


14-1135085051
Иксик
2005-12-20 16:24
2006.01.15
Удаленная тех. поддержка


2-1135462785
kizam
2005-12-25 01:19
2006.01.15
как обявить CreateOleObject?


4-1131370003
Толик
2005-11-07 16:26
2006.01.15
Количество копий отправленого на печать документа