ITreeControl.HitTest

Синтаксис

HitTest(Pt: IPoint; Var Hit: HitTestResult): ITreeListNode;

Параметры

Pt. Точка, в которой нужно получить элемент компонента.

Hit. Параметр, в котором будет содержаться дополнительная информация после выполнения метода.

Описание

Метод HitTest осуществляет проверку наличия элемента в заданной точке клиентской области компонента и возвращает результат проверки.

Комментарии

Метод HitTest является расширением метода GetItemAt.

Если точка Pt попадает в область элемента (учитывается вся строка: область отступа, пиктограмма состояния, пиктограмма, текст элемента в любом столбце и свободная область справа от текста), то метод вернёт параметры этого элемента, иначе метод вернёт значение Null.

Также в переменной, которая будет передана в качестве параметра Hit, будет содержаться область компонента, в которую попадает точка Pt.

Примечание. Метод GetItemAt не поддерживается компонентами TreeCombo, MetabaseTreeCombo, которые являются наследниками интерфейса ITreeControl.

Пример

Для выполнения примера предполагается наличие формы и, расположенного на ней, компонента TreeList с наименованием «TreeList1». Указанная процедура установлена в качестве обработчика события OnMouseDown компонента «TreeList1».

Sub TreeList1OnMouseDown(Sender: Object; Args: IMouseClickEventArgs);
Var
    Node: ITreeListNode;
    Result: HitTestResult;
    s: String;
Begin
    Node := TreeList1.HitTest(Args.pPoint, Result);
    Select Case Result
        Case HitTestResult.Nowhere: s := "Nowhere";
        Case HitTestResult.OnItemIcon: s := "OnItemIcon";
        Case HitTestResult.OnItemLabel: s := "OnItemLabel";
        Case HitTestResult.OnItemIndent: s := "OnItemIndent";
        Case HitTestResult.OnItemButton: s := "OnItemButton";
        Case HitTestResult.OnItemRight: s := "OnItemRight";
        Case HitTestResult.OnItemStateIcon: s := "OnItemStateIcon";
        Case HitTestResult.Above: s := "Above";
        Case HitTestResult.Below: s := "Below";
        Case HitTestResult.ToLeft: s := "ToLeft";
        Case HitTestResult.ToRight: s := "ToRight";
    End Select;
    If Node <> Null Then
        s := Node.Text + '(' + s + ')';
    End If;
    Self.Text := s;
End Sub TreeList1OnMouseDown;

При щелчке мышью в области компонента «TreeList1» будет осуществляться проверка наличия в этой области какого-либо элемента. Область компонента и текст элемента, если он имеется в этой области, будут выведены в заголовок формы.

См. также:

ITreeControl