anchor.diff:  
     UTF8Insert(s, FText, FCursorPos + 1);
     FCursorPos := FCursorPos + UTF8Length(s);
  -  AdjustCursor;
  +  FSelStart  := FCursorPos;
  +  AdjustVisibleText;
     Repaint;
   end;
   
  
positive.code:     if Consumed then
      begin
        StopSelection;
        AdjustCursor;
      end;
    end;  { if }
  
  
negative.code:       len := -len;
      end;
      tw  := FFont.TextWidth(UTF8copy(dtext, 1, st));
      tw2 := tw + FFont.TextWidth(UTF8copy(dtext, st + 1, len));
  
      Canvas.SetColor(lcolor);
      Canvas.FillRectangle(-FTextOffset + FSideMargin + tw, 3, tw2 - tw, FFont.Height);
      r.SetRect(-FTextOffset + FSideMargin + tw, 3, tw2 - tw, FFont.Height);
      Canvas.AddClipRect(r);
      Canvas.SetTextColor(clWhite);
      fpgStyle.DrawString(Canvas, -FDrawOffset + FSideMargin, 3, FVisibleText, Enabled);
      Canvas.ClearClipRect;
    end;
    
  