![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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() ...