Wie kann die Datenspalte 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:GetColumnToPoint() kann dann zur Mausposition die Spaltennummer ermittelt werden. Anschließend muss noch die Methode bBrowser:GetOpenColumn() aufgerufen werden, um zur Spaltennummer das Spaltenobjekt zu ermitteln.

Das folgende Codefragment demonstriert die Vorgehensweise:

LOCAL sPoint   IS _winPOINT

LOCAL iColNo   AS DWORD

LOCAL oColumn  AS bDataColumn

 

GetCursorPos(@sPoint)

ScreenToClient(oBrowser:Handle(), @sPoint)

iColNo := oBrowser:GetColumnToPoint(Point{sPoint.X, sPoint.Y})

IF iColNo>0

  oColumn := oBrowser:GetOpenColumn(iColNo)

ENDIF