Control ID problem - even stranger
Peter Haworth
pete at mollysrevenge.com
Fri Mar 25 19:12:19 EDT 2011
While looking into this further, I have discovered what I think is another anomaly. I have two substacks of the same main stack with one card in each one. Each card has one group on it - the two groups have the same short ID.
The dictionary says that IDs "are guaranteed to be unique within a stack" - I had assumed that no two controls within the same stack file could have the same ID but either that's not true or there's a bug somewhere that caused these two groups to have the same ID.
At this point, I think I will delete all these substacks and start over to see if I still get the same issues. This is a test stack so not that many controls on them.
Pete Haworth
On Mar 25, 2011, at 1:52 PM, Scott Rossi wrote:
> Yes, setting the defaultStack to the name of the substack *should* work.
> You may want to check that you're not inadvertently setting focus back to
> the main stack somewhere in your scripts.
>
> Unless you're constantly changing stack names for some reason, IMO, you're
> better off using the long ID of the control. That way you don't have to
> worry about which stack is active or trying to qualify paths. Don't build
> the control's path yourself, just store the long ID of the control in a
> custom property of the main stack for example (ie the myImportantControl of
> this stack). That way everything in your stacks will know where the control
> is.
>
> Regards,
>
> Scott Rossi
> Creative Director
> Tactile Media, UX Design
>
>
> Recently, Peter Haworth wrote:
>
>> Thanks Scott, that's a possibility, the stack in question is not the
>> "front-most" one for sure. However, shouldn't the defaultStack property
>> (which is set to the correct substack) taken care of that? Or is there some
>> other property I can use to qualify the ID? Since this is a general purpose
>> handler that could be called from anywhere in my app, I can't hard code a
>> stack name in it
>>
>> Thanks,
>> Pete Haworth
>>
>> On Mar 25, 2011, at 1:22 PM, Scott Rossi wrote:
>>
>>> The only thing I could guess is your substack is not the top stack. I don't
>>> believe LC has ever known to automatically look in substacks for the
>>> existence of controls. LC can have multiple stacks open simultaneously, and
>>> can have controls of the same ID in different stacks, so unless the stack
>>> with your desired control is front-most, or you use a full stack path, LC
>>> won't know where your control is.
>>>
>>> Regards,
>>>
>>> Scott Rossi
>>> Creative Director
>>> Tactile Media, UX Design
>>>
>>>
>>>
>>> Recently, Peter Haworth wrote:
>>>
>>>> I have a function that returns information about a control which takes the
>>>> control's short ID as a parameter. This has been working fine for a long
>>>> time
>>>> but has suddenly started to throw a run time error for one specific control.
>>>>
>>>> The statement "put the short name of control ID pid into myControlName"
>>>> where
>>>> id is the parameter containing the ID returns the error "No such Object near
>>>> "1076" (1076 is the control ID in pid).
>>>>
>>>> I can clearly see in the application browser and Inspector dialog that there
>>>> is a button with ID 1076 in a substack of the main stack. If I use the
>>>> message box to execute "put the short name of control ID 1076", I get the
>>>> same
>>>> error. But if I execute "put the short name of control ID 1076 of stack
>>>> <mysubstackname>", I get the correct result.
>>>>
>>>> According to the dictionary, the ID of a control is unique within a main
>>>> stack
>>>> so I can't figure out why this doesn't work without qualifying the ID with
>>>> the
>>>> substack name. I tried putting an "answer information" right before the
>>>> offending line to display the defaultStack in case something strange was
>>>> happening to the defaultStack property but it is set to the correct stack
>>>> name.
>>>>
>>>> Any ideas?
>>>>
>>>>
>>>> Pete Haworth
>>>
>>>
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription
>>> preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
More information about the use-livecode
mailing list