Hi all. If anyone is interested, I have a working version of a datagrid tooltip handler. It requires the arrayToText handler as written but that can be replaced by another function of your choosing that takes an array and returns some kind of text representation of it. (printKeys comes to mind but I'm not sure it would work well for a tooltip).
Put this code in your datagrid script: -------- on mouseEnter put the long id of the target into tTarget -- replace the following key list with whatever datagrid column names you want in the tooltip -- if you exclude tKeyList it will include every column of the datagrid -- if you hold down the shift key when entering the datagrid it will also include every column of the datagrid put "customername,industry,salesperson,contactname,contactphone,contactemail" into tKeyList dgToolTip tTarget, tKeyList end mouseEnter on mouseLeave try set the tooltip of tTarget to empty end try end mouseLeave -------- Put this code in a backscript somewhere: -------- on dgToolTip tTarget, tKeyList put the name of tTarget into tTargetName if tTargetName contains "HeaderLabel" or the first word of tTargetName is not "field" then exit dgToolTip end if replace quote with empty in tTargetName put the last word of tTargetName into tLine put the dgDataOfLine [tLine] of tTarget into aLineData if tKeyList is empty or the shiftKey is down then put the keys of aLineData into tKeyList sort lines of tKeyList ascending replace cr with comma in tKeyList end if repeat for each item tKey in tKeyList add 1 to tCounter put aLineData [tKey] into aRecordData [tCounter & ". " & tKey] end repeat put arrayToText(aRecordData, "record") into tText sort lines of tText numeric ascending by word 1 of each set the tooltip of tTarget to tText end dgToolTip function arrayToText aArrayData, pFormat, pStripRecordKeys if aArrayData is not an array then put "ERROR: Data passed is not an array!" into theValue return theValue end if if pStripRecordKeys is not in "true|false" then put false into pStripRecordKeys -- sort tArrayKeys ascending -- may be an array of values put the keys of aArrayData into tArrayKeys sort lines of tArrayKeys numeric ascending put line 1 of tArrayKeys is 0 into tHasHeader -- convert single array to numeric array of arrays if line 1 of tArrayKeys is not a number then put aArrayData into aTempArray [1] put aTempArray into aArrayData put the keys of aArrayData into tArrayKeys end if switch pFormat case "record" repeat for each line tArrayKey in tArrayKeys put aArrayData [tArrayKey] into aArrayRecord put the keys of aArrayRecord into tColumnKeys repeat for each line tColumnKey in tColumnKeys put tColumnKey & ": " & aArrayRecord [tColumnKey] & cr after tValue end repeat end repeat break case "table" -- table header if not tHasHeader then put cr into tValue repeat for each line tArrayKey in tArrayKeys add 1 to tCount put aArrayData [tArrayKey] into aArrayRecord put the keys of aArrayRecord into tColumnKeys sort lines of tColumnKeys numeric ascending repeat for each line tColumnKey in tColumnKeys if pStripRecordKeys and (char 1 of tColumnKey is "@") then next repeat if tCount = 1 and not tHasHeader then put tColumnKey & tab after line 1 of tValue put aArrayRecord [tColumnKey] & tab after tValue end repeat put cr into last char of tValue end repeat break end switch return tValue end arrayToText -------- _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode