anchor.diff:  var RText: UnicodeString;
   begin
     RText := Copy(fText, fLeftIndex+1, Length(fText) - fLeftIndex);
  -  if gRes.Fonts[fFont].GetTextSize(RText, False, DrawEolSymbol).X < X-SelfAbsLeft-4 then
  +  if gRes.Fonts[fFont].GetTextSize(RText, DoShowMarkup, DrawEolSymbol).X < X-SelfAbsLeft-4 then
       Result := Length(RText) + fLeftIndex
     else
  -    Result := gRes.Fonts[fFont].CharsThatFit(RText, X-SelfAbsLeft-4, False, DrawEolSymbol) + fLeftIndex;
  +    Result := gRes.Fonts[fFont].CharsThatFit(RText, X-SelfAbsLeft-4, DoShowMarkup, DrawEolSymbol) + fLeftIndex;
   end;
   
   
  
positive.code:     function KeyEventHandled(Key: Word; Shift: TShiftState): Boolean; override;
      function GetRText: UnicodeString;
      function DrawEolSymbol: Boolean; override;
    public
      Masked: Boolean; //Mask entered text as *s
      MaxLen: Word;
  
negative.code:     function KeyEventHandled(Key: Word; Shift: TShiftState): Boolean; virtual; abstract;
      procedure PaintSelection;
      function DrawEolSymbol: Boolean; virtual;
      function DoShowMarkup: Boolean; virtual;
    public
      ReadOnly: Boolean;
      BlockInput: Boolean; // Blocks all input into the field, but allow focus, selection and copy selected text
  