Главная страница
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.033 c
14-1134898418
Virgo_Style
2005-12-18 12:33
2006.01.15
аська и почта на мобильном


5-1121207868
Brack
2005-07-13 02:37
2006.01.15
Как применить общее свойство к N обьектам?


2-1135509190
SergProger
2005-12-25 14:13
2006.01.15
Копирование файлов с сервера


2-1135500746
Максим
2005-12-25 11:52
2006.01.15
Среднее арифметическое


5-1120111375
ORMADA
2005-06-30 10:02
2006.01.15
PageControl и [<>] прокрутка