anchor.diff:    C: TControl;
     i: integer;
   begin
  +  OnChangeActive:= true;
     for i:= 0 to Form.ControlCount-1 do
     begin
       C:= Form.Controls[i];
  
positive.code:   TDummyClass = class
    public
      Form: TForm;
      procedure DoOnShow(Sender: TObject);
      procedure DoOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
      procedure DoOnChange(Sender: TObject);
  
negative.code: var
    i: integer;
  begin
    //workarnd for bug on MacOS
    if not OnChangeActive then exit;
  
    //Tag=Dummy_TagActive means that control change closes form
    if (Sender as TControl).Tag=Dummy_TagActive then
      for i:= 0 to Form.ControlCount-1 do
  