Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SaveDialog [D4]


Новенькая ©   (2005-12-20 08:02:00) 

Здравствуйте мастера не могли бы подсказать как осуществить сохранение файла на диск, спрашивая пользователя если он выбрал уже существующий файл, заменить ли его?вот как-то так сделала (неправильно очевидно:)) не совсем получается, окно "заменить" выводится даже если файл не существует.

type
SaveException = class (Exception);

procedure TForm1.SaveAsBtnClick(Sender: TObject);
begin
if SaveDialog1.Execute then
 try
   if SaveDialog1.Files.Strings [0] = SaveDialog1.FileName then     //Вот здесь ошибка по-моему.
    raise SaveException.Create ('Файл уже существует');
  except on E:SaveException do begin
    Msg := MessageDlg ('Файл уже существует!заменить?', mtWarning, [mbYes, mbNo], 0);
    if Msg = mrYes then RichEdit1.Lines.SaveToFile (SaveDialog1.FileName)
     else exit;
   end;
 end;
end;

PS исключение собственое SaveException надо создавать обязательно


Digitman   (2005-12-20 09:54:00) [1]

F := TFileStream.Create(Form1.SaveDialog2.FileName, fmCreate);


Новенькая   (2005-12-20 09:46:00) [2]

спасибо все работает. а может еще подскажите как дерево таким же путем сохранять?опять не получается ничего:)

procedure SavingTreeView ;
begin
if TreeChanged then
begin
 if Form1.SaveDialog2.Execute then
   try
 if FileExists(Form1.SaveDialog2.FileName) then
  raise SaveException.Create ('Файл уже существует');
//в скобках что неправильно наверное
   F := TFileStream.Create('Form1.SaveDialog2.FileName.txt', fmOpenWrite or fmShareCompat);
   F.WriteComponent (Form1.TreeView1);

 except on E: SaveException do
  begin
   Msg := MessageDlg ('Существует!Заменить?', mtWarning, [mbYes, mbNo], 0);
   if Msg = mrYes then
     begin
       F := TFileStream.Create('Form1.SaveDialog2.FileName.txt', fmOpenWrite or fmShareCompat);
       F.WriteComponent (Form1.TreeView1);
     end
    else exit;
  F.Free;
   end;
end;
end
 else exit;
end;


TUser   (2005-12-20 08:08:00) [3]

Вкулючи ему в Options флаг ofOverridePrompt.

зы. В твоем примере надо было писать if fileexists() ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо