anchor.diff:    FImageID := AImageID;
     FValue := '';
     FAdditionalValue := '';
  +  FProgress := -1;
   end;
   
   procedure TKMGUIGameSpectatorItem.Paint;
  
positive.code:     function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
    TKMGUIGameSpectatorItemLineBuild = class(TKMGUIGameSpectatorItemLine)
    protected
      function CreateItem(AHandIndex: Integer; ATag: Integer): TKMGUIGameSpectatorItem; override;
      function GetTagCount: Integer; override;
      function GetTag(AIndex: Integer): Integer; override;
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
    TKMGUIGameSpectatorItemLineBuildings = class(TKMGUIGameSpectatorItemLineBuild)
    protected
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetAdditionalValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
  
    TKMGUIGameSpectatorItemLinePopulation = class(TKMGUIGameSpectatorItemLine)
    protected
  
negative.code:     function GetTag(AIndex: Integer): Integer; virtual; abstract;
      function GetValue(AHandIndex: Integer; ATag: Integer): String; virtual; abstract;
      function GetAdditionalValue(AHandIndex: Integer; ATag: Integer): String; virtual;
      function GetProgress(AHandIndex: Integer; ATag: Integer): Single; virtual;
    public
      constructor Create(aParent: TKMPanel; AHandIndex: Integer);
      procedure UpdateState(aTickCount: Cardinal); override;
  