'Last group' et al. not working right

Jim Witte jswitte at bloomington.in.us
Fri Apr 25 01:13:05 EDT 2003


   I'm using the following script to collect various objects into two 
groups, which I then name frameOne and frameTwo:

on gatherGroups
   global gLeftItems, gRightItems

   -- group the left items
   get "group control" && quote & "leftFrame" & quote
   repeat with i=1 to number of lines in gLeftItems
     put " and control id" && (line i of gLeftItems) after it
   end repeat
   do it
   set name of last group to "frameOne"

   --exit gatherGroups

   -- group the right items
   get "group control" && quote & "rightFrame" & quote
   repeat with i=1 to number of lines in gRightItems
     put " and control id" && (line i of gRightItems) after it
   end repeat
   do it
   select the last group
   set name of last group to "frameTwo"
end gatherGroups

   'rightFrame' and 'leftFrame' are both graphics, on the right and left 
sides of the screen.

   If I cancel the script after the first group command is executed, 
everything is fine, with the group frameOne where it belongs.  But when 
I change the script to execute the second group command as well, *both* 
groups turn out to have the name frameTwo.

   But it gets stranger: when the  selected object is the group on the 
*left* of the screen, not the right.  And the name of the group on the 
left (as reported in the Property Inspector) is *still* frameOne when 
the script stops, but as soon as I click on the pointer tool, it 
changes to frameTwo.

   I just reopened the stack and ran the script again, and it worked as 
it should (sort of): when the script stops, the group on the *right* is 
selected, and is still named the default 'group id ...', but when I 
clicked on the pointer tool, it changed to 'frameTwo' (as it should).  
But then I got the spinning ball of death and Rev quit unexpectedly 
after about 5 seconds.  This strange behavior also occurs in Rev 1.1.1.

   There seems to be a repeatable pattern to the errors: I open the 
stack in 2.0, then run the script, and the second behavior occurs 
(where the group name's end of up correct, but not until I select the 
pointer tool).  If I then select each group and execute 'ungroup' from 
the message box and run the script again, the first behavior (where 
both groups end up with the name frameTwo.

   Anybody want a copy of the stack to play with?

Jim




More information about the Use-livecode mailing list