anchor.diff:    TKMSelectableEdit = class(TKMControl)
     private
       fFont: TKMFont;
  -    fText: UnicodeString;
       fLeftIndex: Integer; //The position of the character shown left-most when text does not fit
   
       fCursorPos: Integer;
  
positive.code: procedure TKMEdit.Paint;
  var
    Col: TColor4;
    RText, BeforeSelectionText, SelectionText: UnicodeString;
    OffX, BeforeSelectionW, SelectionW: Integer;
  begin
    inherited;
  
  
negative.code:     procedure FocusSelectableEdit(aFocused: Boolean);
      procedure ControlMouseDown(Sender: TObject; Shift: TShiftState);
    protected
      fText: UnicodeString;
      function GetMaxLength: Word; virtual; abstract;
      function IsCharValid(aChar: WideChar): Boolean; virtual; abstract;
      procedure ValidateText; virtual; abstract;
  