DataGrid question...
J. Landman Gay
jacque at hyperactivesw.com
Mon Mar 30 15:42:20 EDT 2020
On 3/30/20 4:08 AM, Pi Digital via use-livecode wrote:
> So, have we all missed a clever and simple, non convoluted method of telling which cell in a scrollable, non editable table field has been clicked? Even if that cell is empty.
The table field is pretty rudimentary and so has limitations. For example, no messages are
generated if a user clicks in a cell that is below the last text entry. Provided the field is
full of data and user clicks on a populated cell, this seems to work:
on selectionChanged
put "Row:" && word 2 of the clickline into tRow -- adjust for scroll here
put "Col:" && getColumn(the clickH) into tColumn
put tRow &cr& tColumn
end selectionChanged
function getColumn pClickH
put the num of items in the tabstops of me into tNumStops
put last item of the tabstops of me into tTabWidth -- in case we need to calculate it
set the itemdel to tab
put the num of items in line 1 of fld "tf" into tColumns
if tNumStops < tColumns then -- add missing tabstops
put the tabstops of me into tTabs
repeat with x = tNumStops+1 to tColumns
put comma & (tTabWidth * x) after tTabs
end repeat
end if
set the itemdel to comma
repeat with x = 1 to the num of items in tTabs
if pClickH > item x of tTabs and pClickH < item x+1 of tTabs then
return x
end if
end repeat
return empty
end getColumn
This is as far as I got (I need to get back to work,) but I think all it's missing is
calculating the row offset if the field is scrolled. David accounted for that.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list