anchor.diff:      { property events }
       property    OnClick: TNotifyEvent read FOnClick write FOnClick;
       property    OnDoubleClick: TMouseButtonEvent read FOnDoubleClick write FOnDoubleClick;
  +    property    OnDragStartDetected: TNotifyEvent read FOnDragStartDetected write FOnDragStartDetected;
       property    OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
       property    OnExit: TNotifyEvent read FOnExit write FOnExit;
       property    OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
  
positive.code:     FOnResize: TNotifyEvent;
      FOnScreen: boolean;
      FOnShowHint: THintEvent;
      procedure   SetActiveWidget(const AValue: TfpgWidget);
      function    IsShowHintStored: boolean;
      procedure   SetFormDesigner(const AValue: TObject);
  
negative.code:     FFormDesigner.Dispatch(msg);
      if msg.Stop then
        Exit;
    end;
  
    if (msg.Params.mouse.Buttons and MOUSE_LEFT) = MOUSE_LEFT then
    begin
      if not FDragActive and (FDragStartPos.ManhattanLength(fpgPoint(msg.Params.mouse.x, msg.Params.mouse.y)) > fpgApplication.StartDragDistance) then
      begin
        FDragActive := True;
        if Assigned(OnDragStartDetected) then
          OnDragStartDetected(self);
      end;
    end;
  
    HandleMouseMove(msg.Params.mouse.x, msg.Params.mouse.y, msg.Params.mouse.Buttons, msg.Params.mouse.shiftstate);
  