anchor.diff:      begin
         AStartOffs := FSelStartOffs;
         AEndOffs := FSelEndOffs;
  -    end else
  +    end
  +    else
       begin
         AStartOffs := FSelEndOffs;
         AEndOffs := FSelStartOffs;
       end;
  -  end else
  +  end
  +  else
     begin
       AStartNo := FSelEndNo;
       AEndNo := FSelStartNo;
  
positive.code:     FVisCols := GetClientRect.Width div FChrW;
  end;
  
  procedure TfpgBaseTextEdit.GetSelBounds(var AStartNo, AEndNo, AStartOffs,
    AEndOffs: Integer);
  begin
  
negative.code:           begin
              if not FSelected then
              begin
                if CaretPos.Y <= (FLines.Count-1) then
                  if CaretPos.X > UTF8Length(FLines[CaretPos.Y]) then
                    CaretPos.Y := UTF8Length(FLines[CaretPos.Y]) - 1;
                FSelected := True;
                FSelStartNo := CaretPos.Y;
                FSelStartOffs := CaretPos.X + 1;
  