function TCustomDBGridEh.CheckBeginRowMoving(MouseX, MouseY: Integer; CheckInOnly: Boolean): Boolean;
var
Cell: TGridCoord;
Bookmark: TUniBookmarkEh;
DataRow: Integer;
begin
Result := False;
if not DataLink.Active or not (dghRecordMoving in OptionsEh) then Exit;
Cell := MouseCoord(MouseX, MouseY);
Result := (Cell.X >= 0) and (Cell.X < FIndicatorOffset) and
(Cell.Y > TopDataOffset - 1) and (Cell.Y < RowCount) and
DataLink.Active and not (DataSource.DataSet.Eof and DataSource.DataSet.Bof);
if Result then
begin
DataRow := Cell.Y - TopDataOffset;
InstantReadRecordEnter(DataRow);
try
Bookmark := DataLink.DataSet.Bookmark;
FMoveRowSourLevel := -1;
if MemTableSupport then
FMoveRowSourLevel := FIntMemTable.GetTreeNodeLevel;
if CanSelectType(gstRecordBookmarks) then
Result := FBookmarks.CurrentRowSelected and (GetShiftState * [ssShift, ssAlt, ssCtrl] = []);
把GetShiftState * [ssShift, ssAlt, ssCtrl]取消。