anchor.diff:            begin
               SS := UTF8Copy(S, Si + 1, UTF8Length(S) - Si);
               R.SetRect(X+(Si * FChrW), Y, (UTF8Length(SS) * FChrW), FChrH);
  -            Canvas.XORFillRectangle(fpgColorToRGB(clSelection) xor $FFFFFF, R);
  +            Canvas.FillRectangle(R);
  +            Canvas.DrawText(R, SS);
             end
             else
             begin
  
positive.code:                 Ei := UTF8Length(S);
                SS := UTF8Copy(S, 1, Ei);
                R.SetRect(X, Y, (UTF8Length(SS) * FChrW), FChrH);
                Canvas.XORFillRectangle(fpgColorToRGB(clSelection) xor $FFFFFF, R);
              end;
            end;
          end;
        end;
      end; { if FSelected... }
    end;  { if AllowDraw... }
  
    if UTF8Length(S) > FMaxScrollH then
    begin
  
negative.code:           else
              SS := UTF8Copy(S, Si + 1, Ei - Si);
            R.SetRect(X+(Si * FChrW), Y, (UTF8Length(SS) * FChrW), FChrH);
            Canvas.FillRectangle(R);
            Canvas.DrawText(R, SS);
          end
          else
          begin
  