How to get the X and Y coordinates of a Grid DataWindow
row?
Symptom
How do I get the X and Y coordinates of a clicked row in a grid
DataWindow?
Environment
PowerBuilder
Solution
The code sample below moves an existing static text box to the
location where a user has clicked in the grid DataWindow. It can be
altered to use these X, Y grid DataWindow coordinates for other
uses.
The code sample assumes a PB application with an existing grid
DataWindow named dw_1 and a static text box named st_1.
1. Declare the following external function.
|
1 2 |
//GetSystemMetrics is an external function defined as below: Function integer GetSystemMetrics (int nIndex ) Library "user32.dll |
2. Place the following script in the clicked event of the grid
DataWindow.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
long firstrow integer li_rowheight, li_Header_height, li_border st_1.X = dw_1.X + Integer(dw_1.Describe(dwo.name + ".x")) - Integer(Describe("datawindow.horizontalscrollposition")) st_1.width = Integer(dw_1.Describe(dwo.name + ".width")) li_Header_height= Integer(dw_1.Object.Datawindow.Header.Height) li_rowheight = Integer(dw_1.Object.Datawindow.Detail.Height) firstrow = Long(dw_1.Object.DataWindow.FirstRowOnPage) li_border = PixelsToUnits( GetSystemMetrics (5), YPixelsToUnits!) if dw_1.border then li_border += PixelsToUnits( GetSystemMetrics (5), YPixelsToUnits!) st_1.Y = dw_1.Y + li_Header_height + (row - firstrow ) * li_rowheight + integer (dw_1.Describe(dwo.name + ".Y")) + li_border st_1.height = Integer(dw_1.Describe(dwo.name + ".height")) |
Document get from Powerbuilder help
Thank you for watching.
Subscribe
Login
0 Comments
Oldest