Understanding HitTests
- 2 minutes to read
HitTest objects (or simply HitTests) are useful when responding to mouse actions such as movements, clicks, and drag-and-drop operations. To identify a particular grid View element located at the point being inspected, examine the hit code that is returned by a HitTest object’s HitTestCode function for this point. Then, cast the HitTest object to a class that corresponds to the inspected element to access element-specific properties.
Note
One element, which is only available at design time and present in all Views, is a View Selector. This is a special element that helps you select a particular View in a form in order to access its members via the Object Inspector. The View selector is located at the top-left corner of a View. The Tcx
The following code example implements the technique described above to hide bands and columns within the Banded Table View named btvCars when an end-user clicks on them using the right mouse button. The btvCarsMouseDown procedure is the Banded Table View’s OnMouseDown event handler.
procedure TForm1.btvCarsMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
AHitTest: TcxCustomGridHitTest;
begin
if (Button = mbRight) and (Sender is TcxGridSite) then
begin
AHitTest := TcxGridSite(Sender).ViewInfo.GetHitTest(X, Y);
case AHitTest.HitTestCode of
htBandHeader:
TcxGridBandHeaderHitTest(AHitTest).Band.Visible := False;
htColumnHeader:
TcxGridColumnHeaderHitTest(AHitTest).Column.Visible := False;
end;
end;
end;