Тема: ModalResult
Показать сообщение отдельно
  #7  
Старый 13.03.2018, 21:16
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Alegun
Ну а что, вполне логично - если вылетает из блока следовательно ShowModal отличается от mrYes, тогда можно явно при жиме кнопки результат указывать ModalResult:= mrYes; до обработки и Close
Так то да, вот только в коде нигде не используется close и никак не обрабатываются соответствующие события.
К тому же я писал, что в проблемном случае Бряк срабатывает как бы при открытии модальной формы. То есть мы по сути не ждем модалку как если бы прописали SomeFRM.Show, a не ShowModal. Так что там никакой Close не перекрывается. На форме 2 события и 3 кнопки.
Ничего не обычного OnCreate, Кнопка Save с MrYes, и таким кодом
Код:
var
  ini: tinifile;
begin
  ini := tinifile.Create(ExtractFilePath(Application.ExeName) + 'data.ini');
  try
    ini.WriteInteger();
    ...
  finally
    ini.Free;
  end;

end;
и кнопка Close Без события, но с mrCancel
Вот собственно все, что есть на модальной форме.
В OnCreate Главной формы
Код:
SomeFRM := TSomeFRM.Create(self);
  Application.OnRestore := AppRestore;
  Application.OnMinimize := AppHide;
 ....
  LoadFromINIparam; // Заполняем SomeFRM с того же data.ini
  ...

end;
Само собой, все формы создаются вручную.
Ответить с цитированием