anchor.diff:  var
     ACounter: integer;
   begin
  -  result := 0;
  +  result := -1;
     for ACounter := 0 to FList.Count - 1 do
       if TfpgImageItem(FList[ACounter]).Index > result then
         result := TfpgImageItem(FList[ACounter]).Index;
  
positive.code:   public
      constructor Create;
      destructor  Destroy; override;
      procedure   AddItemFromFile(AFileName: String; AIndex: word);
      procedure   AddImage(AImage: TfpgImage; AIndex: word);
      procedure   RemoveIndex(AIndex: integer);
      function    GetMaxItem: word;
      property    Item[AIndex: integer]: TfpgImageItem read GetItem write SetItem;
  
negative.code:   {$IFDEF DEBUG}
    writeln('TfpgImageList.AddItemFromFile');
    {$ENDIF}
    
    if not FileExists(AFileName) then
      Exit;
    
    AImageItem := TfpgImageItem.Create;
    AImageItem.LoadFromFile(AFileName);
    if AIndex > -1 then
      Item[AIndex] := AImageItem
    else
    begin
      FList.Add(AImageItem);
      AImageItem.Index := GetMaxItem+1;
    end;
  end;
  
  procedure TfpgImageList.AddImage(AImage: TfpgImage; AIndex: word);
  