numbering backgrounds (was: background owners)

Wilhelm Sanke sanke at hrz.uni-kassel.de
Wed May 21 09:36:00 EDT 2003


While dealing with  the special features of  backgrounds we have
discussed so far under "background owners", I noticed another specialty
that seems to be undocumented, namely how to refer to backgrounds by
number:

As stated in the documentation, the backgroundnames and backgroundIDs
functions return the "toplevel" backgrounds - the primary ones without
considering nested groups.

"put the number of backgrounds of this stack" likewise returns the
number of these toplevel backgrounds.

However, if you want to refer to a background by number (which, of
course, you need not do)

- do something with background x -

you may end up with a background quite different from what you expected,
because - this is the point -

the *internal* numbering of backgrounds does additionally include all
nested backgrounds.

"Background 4" may refer to the "toplevel"background  number 4 - if
there are no nested groups, but in case there are nested groups,
"background 4" could refer to the second-nested group of  toplevel
background 2.

Apparently there is no function to get the total number of backgrounds,
maybe something like "the effective number of backgrounds" should be
introduced.

It has to be scripted, as in the following example:

  "put 0 into counter
  repeat
    add 1 to counter
    if there is a background counter of stack SName then
      # do something with background counter
    else
      exit repeat
    end if
  end repeat"

The final value of "counter" now contains the total number of
backgrounds and if you have produced a list of background names or IDs
with the help of  this script, you can now accurately refer to a
background also by number.

Regards,

Wilhelm Sanke





More information about the use-livecode mailing list