GetCellCoordAt(Pt: IPoint): IPoint;
Pt. Координаты точки, в которой необходимо получить ячейку компонента.
Метод GetCellCoordAt осуществляет преобразование координаты указанной точки в координаты ячейки компонента.
Координата X в полученной точке будет соответствовать индексу столбца, координата Y - индексу строки. В зависимости от того, какой области компонента соответствует точка, возможны следующие варианты:
Если передаваемая точка находится в области ячейки, то в X и Y будут доступны индекс столбца и строки ячейки соответственно;
Если передаваемая точка находится в области заголовков таблицы, то будет доступна только координата X, а в качестве значения координаты Y будет возвращено «-1»;
Если передаваемая точка находится в пустой области ниже всех строк (область, в которой могут быть созданы строки), то координата X будет иметь значение «-1», а в координате Y будет доступно количество уже созданных строк;
Если передаваемая точка находится в пустой области правее всех столбцов (область, в которой могут быть созданы столбцы) или попадает в разделительную линию между фиксированными областями, то координата X будет иметь значение «-1», а в координате Y будет доступен индекс строки;
Если передаваемая точка находится в пустой области на уровне заголовков, то координаты X и Y будут иметь значение «-1».
Для выполнения примера предполагается наличие формы и расположенного на ней компонента DataGrid с наименованием «DataGrid1».
Sub DataGrid1OnMouseMove(Sender: Object; Args: IMouseEventArgs);
Var
cell: IPoint;
Begin
cell := DataGrid1.GetCellCoordAt(Args.pPoint);
If (cell.X <> -1) And (cell.Y <> -1) Then
Debug.WriteLine(cell.X.ToString + " " + cell.Y.ToString);
End If;
End Sub DataGrid1OnMouseMove;
При перемещении мыши над компонентом «DataGrid1» в консоль среды разработки будут выводится координаты ячейки, над которой проходит курсор мыши.
См. также: