Saving data in a stack ­STANDALONE

Richard Gaskin ambassador at
Mon May 2 12:53:45 EDT 2005

John Ridge wrote:
> As a complete beginner with Revolution I¹ve found it very hard to get a grip
> on this. It¹s a big stumbling block for those used to Hypercard, where the
> IDE was taken for granted, and the concept of a standalone was unfamiliar.
> But the ability to deliver standalones cross-platform is a major attraction
> of Revolution ­ so it¹s disappointing that such a key feature as how to save
> user changes to a stack is hard to grasp.
> I can understand that a standalone is an application, and as such shouldn¹t
> modify itself ­ i.e. the user can¹t save any changes within the application.
> No problem ­ write it out to a file, and read it back in on startup. But
> with structured data such as an Address Book you want to save the data as a
> stack ­ that¹s the whole point!
> The answer given in the documentation is to set up a "dummy" stack as the
> mainstack, then do the work in a substack which is not itself compiled into
> a standalone, but left as a Revolution file (.rev). I simply couldn¹t get
> this to work, until I came across the answer in the lists.runrev archive ­
> go to the Standalone Settings item on the File menu - select the "Stacks"
> tab - click the box to "Move substacks into individual stackfiles".

I can symphathize with the learning curve effort, but IMO the biggest 
conceptual hurdle isn't inherent in the process but rather introduced in 
the standalone builder which doesn't adequately label optional advanced 
features as such.

All the engine requires to make a standalone is a stack and a little 
information about the resulting standalone (target file name, Windows 
info, Mac Finder info).  Everything else is purely optional, and by not 
separating those from the essentials the standalone builder gives the 
impression that the task is more complex than it really is.

Many people enjoy the Rev option of modifying the stack structure at 
build time (moving substacks in and out of separate stack files), but 
I'm a big fan of WYGIWYG:  "What you got is what you get". :)

For myself I find that minimizing the differences between development 
and runtime helps minimize errors, nearly eliminating the range of 
possible issues that can arise from differences between the two 

If you were to use this approach your development setup might look like 

     ----------------------------              --------------------
     |"splash screen" stack file| -- opens --> |Main UI stack file|
     ----------------------------              --------------------

By "opens" I simply mean that the "splash screen" stack opens the main 
UI stack in its openStack handler.

When you build you get simply:

     ---------------------------               --------------------
     | standalone executable   |  -- opens --> |Main UI stack file|
     ---------------------------               --------------------

No fuss, no muss, no relying on hidden processes altering your stack 
structure at build time, nothing more than the simplicity of working in 
and running the same setup.

If using the advanced stack-morphing options has been confusing, you 
might consider this simpler WYGIWYG approach.

  Richard Gaskin
  Fourth World Media Corporation
  Rev tools and more:

More information about the Use-livecode mailing list