Главная страница
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.042 c
6-1127921709
H@rdDrive
2005-09-28 19:35
2006.01.15
Location: http://home.site.ru/ - как перейти


2-1135332871
ANB
2005-12-23 13:14
2006.01.15
Как залогинится при использовании DCOM ?


10-1111562885
AloneAli
2005-03-23 10:28
2006.01.15
Как узнать самый крайний активный левый столбец в Excel е?


2-1135669032
oleggar
2005-12-27 10:37
2006.01.15
блокировка файла


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