On 08/06/2017 22:37, Richard Gaskin via use-livecode wrote:
Alex Tweedly wrote:
> On 08/06/2017 20:20, Richard Gaskin via use-livecode wrote:
>> If you're committed to a script-only stack there's no decision to
>> make: every control must be instantiated dynamically, because a
>> script-only stack contains the stack script only, no objects.
>>
> Well, not quite "every control".
>
> You could :
> - if the relevant template control/group exists - copy it
> - if not, create it dynamically, and then copy it
>
> This way
> - the stack can be script-only
> - most instantiations take minimal time
True, to the degree that your app uses non-script-only stacks, you
won't need to do everything in script only. :)
No, I'm actually doing this all within a script-only stack.
It's a behaviour stack, which is used as a behaviour attached to groups
in the main app stack (which could be binary or script-only). The
behaviour is defined to create controls (actually, groups) as requested
by the main stack - which basically sets up a list of needed controls,
and then calls a handler in the behaviour.
So something vaguely like ....
on preOpenCard
settheEditingMode ofgrp"grp1"ofmetoFALSE
settheSpec ofgrp"grp1"ofmetogSpec
dispatch"buildGroup"togrp"grp1"
...
and within 'buildgroup' it does the
check for the template group existing, create it (from an internal
default set of properties) if needed
This also (I think) allows for the app stack to pre-define the template
groups ahead of time, thereby pre-empting the creation of the groups
within the behaviour stack. Haven't actually done that yet, or fully
considered the problems doing so will create - but it's a loophole I'm
leaving myself in case I need it :-)
-- Alex.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode