anchor.diff:              FMaxScrollH := FMaxScrollH + 2;
               UpdateScrollBars;
             end;
  -//          if CaretPos.x <= pred(FLines.Count) then
  -//          begin
  -//            GliphY := (CaretPos.x - FTopLine) * FChrH;
  -//            DrawLine(Canvas, CaretPos.x, GliphY);
  -//          end;
             if ssShift in ShiftState then
             begin
               if not FSelected then
  
positive.code:               end;
              end;
              FSelected := (FSelStartNo <> FSelEndNo) or (FSelStartOffs <> FSelEndOffs);
              //DrawVisible;
              Exit;
            end;
            if FSelected then
            begin
              FSelected := False;
              //DrawVisible;
              //DrawCaret(CaretPos.X, CaretPos.Y, True);
            end;
            if ssCtrl in ShiftState then
            begin
              CtrlKeyLeftKey;
              //DrawVisible;
              //DrawCaret(CaretPos.X, CaretPos.Y, True);
            end;
            FSelStartNo := CaretPos.Y;
            FSelStartOffs := CaretPos.X;
  
negative.code:             begin
                if CaretPos.Y <= pred(FLines.Count) then
                begin
                  if (ssCtrl in ShiftState) and (CaretPos.Y > 0) then
                  begin
                    CaretPos.Y := CaretPos.Y - 1;
  