Wie kann die Datenzelle unter der Maus ermittelt werden?

Voraussetzung: bBrowser 1.4

 

Zuerst muss mit der API-Funktion GetCursorPos() die Position der Maus ermittelt werden. Weil die API-Funktion die Mausposition relativ zur linken oberen Bildschirmecke zurückgibt, muss die Position auf die linke obere Ecke des bBrowser umgerechnet werden. Hierfür kann die API-Funktion ScreenToClient() verwendet werden. Mit der Methode bBrowser:GetCellToPoint() kann dann zur Mausposition die Datenzelle ermittelt werden. Die Datenzelle enthält die Spalten- , Zeilen- und Datensatznummer.

Das folgende Codefragment demonstriert die Vorgehensweise:

LOCAL sPoint   IS _winPOINT

LOCAL oCell    AS bCell

 

GetCursorPos(@sPoint)

ScreenToClient(oBrowser:Handle(), @sPoint)

oCell := oBrowser:GetCellToPoint(Point{sPoint.X, sPoint.Y})

 

? "Column: "+NTrim(oCell:Column)

? "Row: "+NTrim(oCell:Row)

? "RecNo: "+NTrim(oCell:RecNo)