Главная страница
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.044 c
14-1134978880
Гриха
2005-12-19 10:54
2006.01.15
Миди


3-1132096501
Fl@sh
2005-11-16 02:15
2006.01.15
Данные из другой таблицы * коеффициент


6-1128500267
moor38
2005-10-05 12:17
2006.01.15
UDP клиент (согласен баран, но неполучатся)


14-1134742530
Kerk
2005-12-16 17:15
2006.01.15
Архитектура Google


2-1135369765
zt501
2005-12-23 23:29
2006.01.15
Координаты мышы