anchor.diff:      taRightJustify: TempFlags := DT_RIGHT;
       taCenter: TempFlags := DT_CENTER;
     end;
  -  TempFlags := TempFlags or (DT_VCENTER + DT_SINGLELINE {$ifndef fpc}DT_WORD_ELLIPSIS{$endif});
  +  TempFlags := TempFlags or (DT_VCENTER + DT_SINGLELINE {$ifndef fpc}+ DT_WORD_ELLIPSIS{$endif});
   
     tmpRect := aRect;
     if DrawText(aCanvas.Handle, PChar(aText), -1, tmpRect, TempFlags) = 0 then
  
positive.code: function GeneratePNGThumbnailOfImage(const aSourceFile, aThumbnailFile: String; const aMaxWidth, aMaxHeight: word;out aError: String): boolean;
  var
    sourcePicture : TPicture;
    thumbnail : TPortableNetworkGraphic;
    rateWidth, rateHeight : Extended;
    r : TRect;
  begin
    Result := true;
    try
      sourcePicture := TPicture.Create;
      thumbnail := TPortableNetworkGraphic.Create;
      try
        sourcePicture.LoadFromFile(aSourceFile);
        rateWidth := aMaxWidth / sourcePicture.Width;
  
negative.code:     luminance := Max(0, Min(luminance, 1));
      Result := HLSToRGB(H, luminance, S);
    end;
  
  {$ELSE}
  
    function GetLuminance(aColor: TColor): double;
    var
      H, S, L: Single;
    begin
      RGBtoHSL(ColorToRgb(aColor), H, S, L);
      Result := L;
    end;
  
    function SetLuminance(aColor: TColor; luminance: double): TColor;
    var
      H, S, L: Single;
    begin
      RGBtoHSL(ColorToRgb(aColor), H, S, L);
      luminance := Max(0, Min(luminance, 1));
      Result := HSLtoRGB(H, S, luminance);
    end;
  
  {$ENDIF}
  
  
    function DarkerColor(aColor: TColor; percent: Byte): TColor;
    var
  