anchor.diff:      end;
     end;
   
  -begin
  -  writeln('>> KeyboardCaretNav');
  +  procedure CtrlKeyRightKey;
  +  var
  +    S: TfpgString;
  +    I: Integer;
  +    NotFindIt: Boolean;
  +  begin
  +    if CaretPos.Y <= pred(FLines.Count) then
  +    begin
  +      NotFindIt := True;
  +      while NotFindIt do
  +      begin
  +        S := FLines[CaretPos.Y];
  +        I := CaretPos.X;
  +        if GetNextWord(S, I) then
  +        begin
  +          CaretPos.X := I - 1;
  +          NotFindIt := False;
  +        end
  +        else
  +        begin
  +          CaretPos.Y := CaretPos.Y + 1;
  +          CaretPos.X := 1;
  +        end;
  +        if CaretPos.Y > pred(FLines.Count) then
  +        begin
  +          NotFindIt := False;
  +          CaretPos.X := 0;
  +        end;
  +      end;
  +    end
  +    else
  +      CaretPos.X := 0;
  +  end;
  +
  +begin
  +  writeln('DEBUG:  TfpgBaseTextEdit.KeyboardCaretNav >>');
     case AKeyCode of
       keyLeft:
           begin
  
positive.code: 
      keyRight:
          begin
          end;
  
      keyUp:
  
negative.code:         begin
          end;
    end;
    writeln('DEBUG:  TfpgBaseTextEdit.KeyboardCaretNav <<');
  end;
  
  procedure TfpgBaseTextEdit.InitMemoObjects;
  