anchor.diff:      function    GetSelectionText: TfpgString;
       procedure   SetSelectionText(const AText: TfpgString);
     protected
  -    FSpecialChar: integer;
       procedure   HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: boolean); override;
       procedure   HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override;
       procedure   HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override;
  
positive.code: begin
    inherited;
    prevval  := Text;
    if FSpecialChar> -1 then
    begin
      case FSpecialChar of
        58536:
          case AText of
            'a':
              AText:= 'â';
            'e':
              AText:= 'ë';
            'i':
              AText:= 'ï';
            'o':
              AText:= 'ö';
            'u':
              AText:= 'ü';
          end;
        58462:
          case AText of
            'a':
              AText:= 'â';
            'e':
              AText:= 'ê';
            'i':
              AText:= 'î';
            'o':
              AText:= 'ô';
            'u':
              AText:= 'û';
          end;
      end;
      FSpecialChar:= -1;
    end;
    s        := AText;
  
    if (not consumed) and (not ReadOnly) then
  
negative.code:   FReadOnly   := False;
    FUpdateCount := 0;
    FBorderStyle := ebsDefault;
  
    FLines      := TfpgMemoStrings.Create(self);
    FFirstLine  := 0;
  