anchor.diff:  
     TKMRenderUI.WriteBevel(AbsLeft, AbsTop, Width, Height);
     TKMRenderUI.WritePicture(AbsLeft + 2, AbsTop, Width - 4, Height - 4, [], rxGui, FImageID, True, gHands[FHandIndex].FlagColor);
  -  TKMRenderUI.WriteText(AbsLeft, AbsTop + Height - 14, Width, FValue, fnt_Grey, taCenter, $FFFFFFFF);
  +
  +  if FProgress >= 0 then
  +    TKMRenderUI.WritePercentBar(AbsLeft, AbsTop + Height - 6, Width, 6, FProgress, 0);
  +
  +  TKMRenderUI.WriteText(AbsLeft, AbsTop + Height - 16, Width, FValue, fnt_Grey, taCenter, $FFFFFFFF);
     if FAdditionalValue <> '' then
       TKMRenderUI.WriteText(AbsLeft - 2, AbsTop - 2, Width, FAdditionalValue, fnt_Grey, taRight, $FFFFFFFF);
   end;
  
positive.code:   FDropBoxPanel.Anchors := [anTop, anRight];
    //FDropBoxPanel.Focusable := false;
    FDropBoxPanel.Show;
  
  
    FLastIndex := 0; 
      
  
negative.code:     function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
    // Buildings
  
    TKMGUIGameSpectatorItemLineCustomBuildings = class(TKMGUIGameSpectatorItemLine)
    protected
      function CreateItem(AHandIndex: Integer; ATag: Integer): TKMGUIGameSpectatorItem; override;
      function GetTagCount: Integer; override;
      function GetTag(AIndex: Integer): Integer; override;
    end;
  
    TKMGUIGameSpectatorItemLineBuild = class(TKMGUIGameSpectatorItemLineCustomBuildings)
    protected
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetProgress(AHandIndex: Integer; ATag: Integer): Single; override;
    end;
  
    TKMGUIGameSpectatorItemLineBuildings = class(TKMGUIGameSpectatorItemLineCustomBuildings)
    protected
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetAdditionalValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
    // Units
  
    TKMGUIGameSpectatorItemLinePopulation = class(TKMGUIGameSpectatorItemLine)
    protected
  