anchor.diff:      property Selected: Boolean read GetSelected write SetSelected;
       property DesignX: Integer read FDesignX;
       property DesignY: Integer read FDesignY;
  -    property Related: TRelated read FRelated write SetRelated;
  +    property Container: TContainer read FContainer write SetContainer;
     end;
   
     TElementClass = class of TElement;
  
positive.code:   Invalidate;
  end;
  
  function TElement.GetPageByPoint(X, Y: Integer): TPage;
  begin
    Result := GetPageByPoint(Related, X, Y);
  end;
  
  function TElement.GetPageByPoint(vRelated: TRelated; X, Y: Integer): TPage;
  begin
    if vRelated.Board <> nil then
      Result := vRelated.Board.GetPageByPoint(X, Y)
    else
      Result := nil;
  end;
  
  procedure TElement.SetRelated(const Value: TRelated);
  begin
    if Value <> FRelated then
    begin
      if FRelated <> nil then
      begin
        FRelated.ElementList.Extract(Self);
      end;
      FRelated := Value;
      FRelated.ElementList.Add(Self);
    end;
  end;
  
  
negative.code: begin
    inherited;
    ControlStyle := ControlStyle + [csOpaque];
    FLayouts := TLayouts.Create(Self);
    FContainer := FLayouts;
    FContainer.Init;
    Width := 100;
    Height := 100;
    FCacheMode := False;
    NextElement := TRectangleElement;
  end;
  
  