anchor.diff:      FVisCols := GetClientRect.Width div FChrW;
   end;
   
  +{ Re-order StartXXX and EndXXX if user is selecting backwards }
   procedure TfpgBaseTextEdit.GetSelBounds(var AStartNo, AEndNo, AStartOffs,
     AEndOffs: Integer);
   begin
  
positive.code:                 end;
                end;
                CaretPos.Y := CaretPos.Y - 1;
                CaretPos.X := Length(FLines[CaretPos.Y]);
              end
              else
              begin
  
negative.code:                 CtrlKeyLeftKey
                else
                  FSelEndOffs := CaretPos.X;
                if FSelEndNo <= (FLines.Count-1) then
                begin
                  if FSelEndOffs > UTF8Length(FLines[FSelEndNo]) then
                  begin
                    FSelEndOffs := UTF8Length(FLines[FSelEndNo]) - 1;
                    CaretPos.X := FSelEndOffs;
                  end;
                end
  