anchor.diff:          repeat
             Delete(STemp, 1, 1);
             S:= DotsString+STemp;
  -        until (Length(S)<=cMinLen) or (C.TextWidth(UTF8Encode(S))<=Width);
  +        until (Length(S)<=cMinLen) or (C.TextWidth(S)<=Width);
         end;
   
       attcDotsMiddle:
  
positive.code:   S, STemp: UnicodeString;
    N, i: integer;
  begin
    if Mode=attcNone then exit(Text);
    if C.TextWidth(Text)<=Width then exit(Text);
  
    S:= UTF8Decode(Text);
    STemp:= S;
  
    case Mode of
  
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;
  
  
  