Since a stack that is in use is available to all other stacks (it's script has been inserted into back), maybe it would be better simply for any stack that needs to use the libStack to'register' and 'deregister' with the libStack, which can then put itself in and out of use as necessary.

in a client stack, for example

on openStack
  put the long name of me into myName
send "libStackregister myName" to stack "/Users/Dave/Desktop/ TestLib/Lib.rev"
  pass openStack
end openStack

on closeStack
  put the long name of me into myName
send "libStackDeregister myName" to stack "/Users/Dave/Desktop/ TestLib/Lib.rev"
  pass closeStack
in the libStack

and in the libStack

on libStackRegister tClient
  set the clients of me to the clients of me & cr & tClient
  start using me
end libStackRegister

on libStackDeregister tClient
  put the clients of me into cList
  get lineOffset(tClient,cList)
  if it > 0 then delete line it of cList
  set the clients of me to cList
  if the clients of me is empty then stop using me
end libStackDregister


Mark

On 27 Mar 2006, at 12:53, David Burgun wrote:


On 27 Mar 2006, at 11:43, Mark Smith wrote:

The target of the 'start using' <is> stack TestLib, no?

I'm not sure and a bit confused! But from just experimenting with Target a bit more, yes, you are right.
Yes, that seems like another way to do it.

I would like to scan the script(s) of the stack that just did the "start using" and was hoping that I could do it without an additional call to the library, since it's a bit error prone and it's better practice anyway to do it in the "libraryStack" hanlder.

I could also use a Global and clear it after use, as in:

global gISMStackName

on libraryStack
  if gISMStackName = empty then
         stop using "/Users/Dave/Desktop/TestLib/Lib.rev"
         throw " gISMStackName not set"
     exit libraryStack  
  end if

  put "libraryStack" & cr after field 1 of me
  put gISMStackName after field 1 of me
  put cr & cr after field 1 of me
  select after field 1 of me

  put empty into gISMStackName
end libraryStack

Then in the stack that does the "start using" do this:

global gISMStackName
        
on mouseUp
  local myError

  put the long name of this stack into gISMStackName
-- put empty into gISMStackName --Uncomment to test the "try"

  try
    start using "/Users/Dave/Desktop/TestLib/Lib.rev"

  catch myError
    answer myError
  end try
end mouseUp


I'd have to do something similar in the releaseStack handler too.

Not sure what the best way to do this is? What do you think?

All the Best
Dave




_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to