Цитата:
Сообщение от 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;
Само собой, все формы создаются вручную.