Tango писал(а):убивается объект TDCLForm
Форма это не просто объект, а объект для работы с окнами. При его удалении могут работать разные алгоритмы, в том числе send/post message. Поэтому даже если форме сделать Free не из собственного метода, можно словить AV.
На дельфях лучше делать как-то так:
- Код: Выделить всё
procedure TMyForm.OnClose(Action : TAction);
begin
Action := caFree;
end;
procedyre TMyForm.MyFree;
begin
Close;
end;
Tango писал(а):как отловить SIGSEV?
А чего его ловить? Другой вопрос что он возникает во внутренней кухне LCL, при обращении к удаленной форме.
Добавлено спустя 5 часов 38 минут 34 секунды:В общем случае не надо пользоваться стандартными методами создания/удаления специализированных объектов. У специализированных объектов часто есть свои, специализированные, функции создания/удаления.
То, что у TForm можно вызвать Create/Destroy - ну это надо похвалить прямые руки разработчиков. В общем случае это не всегда так.