Recursive Script

Paul Dupuis paul at researchware.com
Tue Oct 4 15:41:09 EDT 2016


Here is an example:

function listDatagrids pObject
  local dataGridList
  repeat with i=1 to the number of groups of pObject
    if grp i of pObject is a datagrid then -- fix this line
      put whatever data on the datagrid & return after dataGridList --
fix this line
    else
      put listDataGrids(long ID of grp i of pObject) into childList
      if childList is not empty then put childList & return after
dataGridList
    end if
  end repeat
  return dataGridList
end listDataGrids

there are 2 lines you need to fix - one is how to tell a grp is a
datagrid. I recall a property or API you can check, but didn't have the
datagrid PDF handy.
The other is whatever info (short name, long ID, etc. you want for each
datagrid

Call it with the long id of the card. As in:

put listDatagrids(long id of cd x of stack y) into myListOfDatagrids

On 10/4/2016 3:16 PM, Bob Sneidar wrote:
> Hi all. 
>
> Some time back someone had the need to enumerate every datagrid on a card even if the datagrids were themselves grouped with other objects. I cannot now find that thread, or any stack treating the issue in my downloads folder. It would involve recursion because the groupnames is a property of a card and not another group. If groups had the groupname properties it would be easy. 
>
> As it is I then have to enumerate all groups and do recursive calls passing the current group as the next group to enumerate. If none of that makes sense just think, "42". 
>
> My trouble is I am having a difficult time formulating the recursive function, and I cannot find recursion anywhere in the Livecode Lessons. I need an example of a recursive function. 
>
> Bob S
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>





More information about the use-livecode mailing list