anchor.diff:  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
  
positive.code:   fpgApplication.HideHint;
    Consumed := True;
    hasChanged := False;
    case CheckClipBoardKey(keycode, shiftstate) of
      ckCopy:
          begin
  
negative.code:     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;
  