Can a constant be global?
David Burgun
dburgun at dsl.pipex.com
Mon Mar 27 07:12:19 EST 2006
On 27 Mar 2006, at 13:04, Robert Brenstein wrote:
>> This is another of those things that I've lived without for years
>> - I normally use globals to contain text strings which may change
>> if the human language of the app changes (what is the Welsh for
>> "Cancel"? - don't know, but I know someone who can tell me!), so
>> that all the values can be initialised in one handler when the app
>> starts up: but after all this time I thought I'd try using
>> constants instead.
>>
>> However neither the RR documentation nor my experiments seem to
>> suggest that there is a way of making constants global (i.e
>> constant). Can this really be true? If so, they have a crushing
>> disadvantage with respect to globals. After all, RR's own
>> constants are global. I guess I've missed something.
>>
>> Thanks to anyone who can dispel another of my clouds of ignorance.
>>
>> Graham
>>
>
> RR's own constants are global because they are part of the language
> so do speak. As such, they are defined in the engine. That makes
> them a different beast than constant defined in your scripts.
>
> Replicating constant behavior at global level has been discussed
> quite a lot in the past, and not only on this list, but... it is a
> lot more complicated than it seems at first glance. So, for now at
> least, there is no way to make a global behave like a constant
> through declaration. It is up to you to designate some globals as
> global constants, like using a different prefix than for global
> variables.
But the problem there is where do you actually set them? Obviously
you have to make sure they are set before another stack/card/control
uses them.
That's why I decided that a Constant Library was a better way to go.
All the Best
Dave
More information about the use-livecode
mailing list