This is driving me nuts. My ambition is to remove a stack from memory and
therefore from the message path, prior to reloading a fresh (template) version
of the same stack. I don't want two versions of the same stack in the machine
at one time - and in fact LC makes this illegal. This seems a very simple idea
but somehow I have messed it up. I need help.
After lots of experiments, I have made a very simple pair of stacks, as follows.
The first stack, 'Killer', is just a mainstack with one card and two buttons,
one which loads the second stack ('DataStack') and one which destroys the data
stack. The loading (opening) button works, and I can see the loaded stack in
the IDE's Application Browser.
The script of the second button consists of just this:
on mouseUp
if exists(stack "dataStack") then
answer "deleting" && (the short name of stack "dataStack") & ";
destroyStack is" && (the destroyStack of stack "dataStack") & "; cantDelete is"
&& (the cantDelete of stack "dataStack")
delete stack "dataStack" -- this is supposed to guarantee the removal
from RAM
answer "the existence of the stack is now" && (exists(stack "dataStack"))
else
answer "can't find the data stack"
end if
end mouseUp
when I execute this, the first 'answer' reveals that the destroyStack is true
and the cantDelete is false, but after the delete, the second answer confirms
that stack still exists! I can also continue to access it from the IDE's App
Browser. If I use 'close' instead of 'delete', I get the same result.
I also notice that an attempt to invoke the IDE's 'Close and Remove from
Memory' menu doesn't work either - I get the warning dialog but the stack
doesn't go away. This menu item works for me in other apps, even with this
version of LC (5.5.4 on a Mac). I have no idea what new factor I have
introduced. I have often restarted LC as part of this experiment, so it's not
some bit of ragged code in the IDE.
I tried making my KIller stack into a standalone, and although the window of
the data stack closes, its existence is still reported as 'true'. I tried using
'close' instead of 'delete', but the behaviour seems the same.
Can anyone explain this? This is probably just a consequence of 'developer
fatigue', but I can't see it.
TIA
Graham
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode