Такая запутанная система нужна из-за того, что если я в дочерней форме вызываю CLOSE; не из того места, то ломается стек, происходит ошибка 210 и т.д. Закрытие дочерней формы требует чтобы человек явно кликнул мышкой или по энтеру, нажал на крестик в заголовке формы, а если запрограммировать то же самое по нажатию эскейпа, то получите баг.
Добавлено спустя 43 минуты 18 секунд:
Обнаружил как обойти проблему. Вот такой обработчик стек не ломает:
- Код: Выделить всё
procedure TForm9.Button1KeyPress(Sender: TObject; var Key: char);
begin
IF ORD(KEY)=27 THEN CLOSE;
end;
А в procedure TForm9.Button1KeyDown практически тоже самое - ломает.