Уроки по Delphi


         

Procedure TChildForm.Memo1Change(Sender


Тогда нам нужно убрать запрос на сохранение в случае "ручного" сохранения файла, когда пользователь сам выбрал необходимый пункт меню. Изменяем следующие процедуры сохранения файла.

Процедура "Открыть"

procedure TMainForm.N3Click(Sender: TObject);

begin

if OpenDialog1.Execute then

   begin

   ChildForm:=TChildForm.Create(Self);

   ChildForm.Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

   ChildForm.Caption:=OpenDialog1.FileName;

   ChildForm.Memo1.Tag:=0; // добавить

   end;

end;

Процедура "Сохранить как..."

procedure TMainForm.N5Click(Sender: TObject);

begin

if MDIChildCount=0 then Exit;

SaveDialog1.Title:='Сохранить файл как...';

if SaveDialog1.Execute then

   begin

      (ActiveMDIChild as TChildForm).Memo1.Lines.SaveToFile(SaveDialog1.FileName);

      (ActiveMDIChild as TChildForm).Caption:=SaveDialog1.FileName;

      (ActiveMDIChild as TChildForm).Memo1.Tag:=0; // добавить

   end;

end;

Процедура "Сохранить"

procedure TMainForm.N4Click(Sender: TObject);

begin

if MDIChildCount=0 then Exit;

if (ActiveMDIChild as TChildForm).Caption='НОВЫЙ' then

N5Click(Sender) else

   begin // добавить

   (ActiveMDIChild as TChildForm).Memo1.Lines.SaveToFile((ActiveMDIChild as TChildForm).Caption);

   (ActiveMDIChild as TChildForm).Memo1.Tag:=0; // добавить

   end; // добавить

end;

Добавленные строки отделены комментарием "//добавить".

А теперь непосредственно создаем процедуру OnCloseQuery для окна ChildForm.

procedure TChildForm.FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

Var Res:Integer; // переменная для хранения результата выбора действия

begin

if Memo1.Tag=0 then // если не сохранять, то 1, иначе - 2

   begin // 1:

   CanClose:=true; // можно закрыть окно



Содержание  Назад  Вперед