title: TObjectList<> Get item error
body: <p>I'm trying to create TObjectList class in Delphi XE8, but i get errors when i try to get the value.</p>
  
  <blockquote>
    <p>compiler error message: "[dcc32 Error] : can't access to private symbol {System.Generics.Collections}TList.GetItem"</p>
  </blockquote>
  
  <p>Here is my code:</p>
  
  <pre><code>unit Unit2;
  interface
  uses
    Classes, System.SysUtils, System.Types, REST.Types, System.JSON, Data.Bind.Components,
    System.RegularExpressions, System.Variants,
    Generics.Collections;
  
    type
    TTruc = class
    public
      libelle : string;
      constructor Create(pLibelle : string);
    end;
  
    TListeDeTrucs = class(TObjectList&lt;TTruc&gt;)
    private
      function GetItem(Index: Integer): TTruc;
      procedure SetItem(Index: Integer; const Value: TTruc);
    public
      function Add(AObject: TTruc): Integer;
      procedure Insert(Index: Integer; AObject: TTruc);
      procedure Delete(Index: Integer);
      property Items[Index: Integer]: TTruc read GetItem write SetItem; default;
    end;
  
  implementation
  
  { TTruc }
  
  constructor TTruc.Create(pLibelle: string);
  begin
    libelle := pLibelle;
  end;
  
  { TListeDeTrucs }
  
  function TListeDeTrucs.Add(AObject: TTruc): Integer;
  begin
    result := inherited Add(AObject);
  end;
  
  procedure TListeDeTrucs.Insert(Index: Integer; AObject: TTruc);
  begin
    inherited Insert(index, AObject);
  end;
  
  procedure TListeDeTrucs.Delete(Index: Integer);
  begin
    inherited delete(index);
  end;
  
  function TListeDeTrucs.GetItem(Index: Integer): TTruc;
  begin
    result := inherited GetItem(index);
  end;
  
  procedure TListeDeTrucs.SetItem(Index: Integer; const Value: TTruc);
  begin
    inherited setItem(index, value);
  end;
  end.
  </code></pre>
  
  <p>the testing code is :</p>
  
  <pre><code>procedure TForm1.Button1Click(Sender: TObject);
  var
    l : TListeDeTrucs;
    i : integer;
    Obj : TTruc;
  begin
    l := TListeDeTrucs.Create(true);
    l.Add(TTruc.Create('one'));
    l.Add(TTruc.Create('two'));
    Obj := TTruc.Create('three');
    l.Add(Obj);
    for i := 0 to l.count - 1 do
    begin
      showMessage(l[i].libelle);
    end;
    L.Delete(0);
    l.extract(Obj);
    l.Free;
  end;
  </code></pre>
  
  <p>How can i make it work ?</p>