anchor.diff:  
   procedure TfpgBaseNumericEdit.SetShowThousand;
   var
  -	i,long: integer;
  +  i,long: integer;
     txt, texte, decimal: string;
   begin
     if FDecimals > 0 then
  
positive.code:     if fText > '' then
        if fText[1] = '-' then
          txt:= UTF8Copy(txt, 2, UTF8Length(txt)-1);
    	long := UTF8Length(txt);
    	if long = 0 then
    		texte := ''
    	else
    	begin
        for i := 1 to UTF8Length(txt) do
          if fpgCharAt(txt, i) = FThousandSeparator then
          begin
            txt:= UTF8Copy(txt, 1, i - 1) + UTF8Copy(txt, i + 1, long - i);
            dec(long);
          end;
    		i := 0;
    		texte := '';
    		repeat
    			if i > 0 then
    				if ((i mod 3) = 0) and (fpgCharAt(txt,UTF8Length(txt)-UTF8Length(texte)) <> FThousandSeparator) then
            begin
    					texte := FThousandSeparator + texte;
              if fText[1] = '-' then
              begin
                if Pred(FCursorPos) <= UTF8Length(texte) then
  
negative.code:               if FCursorPos <= UTF8Length(texte) then
                  Inc(FCursorPos);
            end;
          texte := Copy(txt, long - i, 1) + texte;
          inc(i);
        until i = long;
      end;
      if fText > '' then
      begin
        if fText[1] = '-' then
        begin
          if UTF8Pos(FDecimalSeparator, fText) > 0 then
            fText := '-' + texte + FDecimalSeparator + decimal
          else
            fText := '-' + texte;
        end
        else
        begin
          if UTF8Pos(FDecimalSeparator, fText) > 0 then
            fText := texte + FDecimalSeparator + decimal
          else
            fText := texte + decimal;
        end;
      end;
    end;
  end;
  
  