Preferred RunRev method to close a stack with Esc
Dave Cragg
dcragg at lacscentre.co.uk
Tue Apr 11 12:47:31 EDT 2006
On 11 Apr 2006, at 17:24, <mfstuart at cox.net> <mfstuart at cox.net> wrote:
>
> Scenario:
> The application is database oriented, with the user double-clicking
> on a table row to open a stack that displays all the fields,
> and data related to that selected row.
> The user is now on the sub-stack. If the user doesn't change
> anything, and presses Esc, the sub-stack should close
> with no warnings.
> If the user has changed data, and then presses Esc,
> I'd want to pop up an alert to the affect that they
> need to save or cancel changes.
> How is this done in RunRev?
This just one way.
First, you need a way to know if the user has changed data. The
details of this will depend on your stack, but let's say you maintain
a custom property that tracks whether changes have been made. So you
might have a preOpenStack handler in the stack script to initially
set the custom property to its "clean" state. Something like:
on preOpenStack
set the cDirtyState of this stack to false
end preOpenStack
Then in the places you determine that a change has been made, you
would set the custom property to true. For example, this might be in
an exitField handler in a text field.
on exitField
set the cDirtyState of this stack to true
end exitField
(But probably something more elaborate is needed, depending on your
stack.)
Then in the stack script, you could have the following handler to
catch the Escape Key.
on escapeKey
if the cDirtyState of this stack then
put "Do you want to save your changes?" into tString
answer tString with "Save" or "Don't Save"
if it is "Save" then
## do whatever you need to save the data here
else
close this stack
end if
else
close this stack
end if
end escapeKey
Cheers
Dave
More information about the use-livecode
mailing list