Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > "Документ не сохранен. Сохранить?"


Автор: Гость_я 11.9.2005, 14:36
Всем приветки. Внезапно возникла такая трабла: пишется обычный редактор. Вопрос такой - я закрываю форму и мне нужно выводить алерт с запросом на сохранение этого документа. Если юзер жмет в этом окошке кнопочку "Отмена", то эта алерта закрывается и пользователь возвращается обратно в редактор. На что повесить появление алерты? Я пробовал вешать на закрытие формы редактора - при любом раскладе форма редактора закрывается. Пытался повесить на Alt+F4 формы - такая же фигня. Подскажите плз, куда запихать код создания формы алерты.

Автор: Mal Hack 11.9.2005, 14:42
OnCloseQuery

Автор: Alex 11.9.2005, 15:15
Код

//Если в документ были внесенны изменения
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  SaveResp: Integer;
begin
if not memo1.Modified then Exit;
 SaveResp := Application.MessageBox('Сохранить изменения в файле','Мой редактор',
 MB_ICONEXCLAMATION + MB_YESNOCANCEL);
  case SaveResp of
    idYes: mnuSaveAs.Click;
    idNo: ;
    idCancel: Abort; //Взвратится обратно к редактированию файла
  end;
end;

Автор: Гость_я 11.9.2005, 19:42
Спасибки всем!!!

Автор: Guest 12.9.2005, 20:34
Alex
Под Kulix такой код не катит smile по Abort - скрывается форма, и приложение весит в памяти. Что делать?

Автор: FRAGNATIC 12.9.2005, 20:48
на OnClose
Код
Action:=caNone;
if not memo1.Modified then Exit;    
 SaveResp := Application.MessageBox('Сохранить изменения в файле','Мой редактор',    
 MB_ICONEXCLAMATION + MB_YESNOCANCEL);    
  case SaveResp of    
    idYes: mnuSaveAs.Click;    
    idNo: close ;    
    idCancel: exit; //Взвратится обратно к редактированию файла    
  end;    
end;

Автор: Vet 15.9.2005, 17:21
А CanClose зачем нужно? Не проще ли делать CanClose := false вместо Abort или Exit?

Автор: FRAGNATIC 15.9.2005, 17:59
Цитата
А CanClose зачем нужно? Не проще ли делать CanClose := false вместо Abort или Exit?

ты читать умеешь у человека аборт не катит)
CanClose := false
лол )
зачем ексит и аборт
на онклоузэ ставишь
Action:=caNone;
и всё!!! дальше чё хош делай ! форма не закроется! пока ты её сам не закроешь )

Автор: Vet 15.9.2005, 18:41
FRAGNATIC, не понял тебя:
Цитата
зачем ексит и аборт
на онклоузэ ставишь

Я предложил на OnCloseQuery ставить CanClose := false вместо Abort или Exit и
Цитата
форма не закроется! пока ты её сам не закроешь
smile
Как и с Action := caNone в OnClose

Автор: FRAGNATIC 15.9.2005, 19:49
Vet
и?
а я на онклосэ предложил это делать) один фиг всё ровно и там и там одна строка кода или санклосэ:=false или актион:=caNone ))))

Автор: Vet 17.9.2005, 21:18
FRAGNATIC, ну да, смысл один и тот же smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)