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

Reply via email to