anchor.diff:          begin
             N:= (Length(STemp)+1) div 2 - i div 2;
             S:= Copy(STemp, 1, N)+DotsString+Copy(STemp, N+i, MaxInt);
  -          if (Length(S)<=cMinLen) or (C.TextWidth(UTF8Encode(S))<=Width) then Break;
  +          if (Length(S)<=cMinLen) or (C.TextWidth(S)<=Width) then Break;
           end;
         end;
   
  
positive.code:         repeat
            Delete(STemp, 1, 1);
            S:= DotsString+STemp;
          until (Length(S)<=cMinLen) or (C.TextWidth(UTF8Encode(S))<=Width);
        end;
  
      attcDotsMiddle:
  
negative.code:         repeat
            SetLength(STemp, Length(STemp)-1);
            S:= STemp+DotsString;
          until (Length(S)<=cMinLen) or (C.TextWidth(S)<=Width);
        end;
    end;
  
    Result:= S;
  end;
  
  
  