Strange contents of long name
Peter M. Brigham
pmbrig at gmail.com
Fri Jan 18 11:19:13 EST 2013
On Jan 16, 2013, at 7:15 PM, Geoff Canyon wrote:
> On Wed, Jan 16, 2013 at 5:49 PM, Richard Gaskin
> <ambassador at fourthworld.com>wrote:
>
>> FWIW, I submitted a request some time ago for a "truncated ID" option
>> which uses the stack name instead of the stack path, similar to what the
>> engine does when storing behavior references:
>>
>> <http://quality.runrev.com/**show_bug.cgi?id=7608<http://quality.runrev.com/show_bug.cgi?id=7608>
>>>
>>
>
>
> This would be great. I added a comment to allow using this form of ID in
> place of an object reference, the same as long ids.
Here's my workaround:
getProp robustID
---- a virtual property, read only ----
-- getting the long id of a control can result in different values depending on
-- (a) where the stack is stored on the user's disk and
-- (b) which card is the currentcard when the property is fetched
-- the robustID is consistent no matter what card is current
-- and no matter which folder the user has stored the stack in;
-- format: button id 1039 of bkgnd id 1003 of stack "subStack1"
-- of stack "tMainStack"
-- the robustID can be used as a complete object reference,
-- just like the long name
-- requires q()
put the long id of the target into tLongID
replace " stack " with cr in tLongID
put line -1 of tLongID into mainStackFileName
if not (word 1 of mainStackFileName = "stack") then
put "stack " before mainStackFileName
end if
put the short name of mainStackFileName into mainStackName
put q(mainStackName) into line -1 of tLongID
replace cr with " stack " in tLongID
replace " of " with cr in tLongID
put lineoffset(cr &"card",cr & tLongID) into cdLineNbr
if cdLineNbr > 1 then delete line cdLineNbr of tLongID
replace cr with " of " in tLongID
replace "group" with "bkgnd" in tLongID
-- in case the group is not placed on the currentcard
return tLongID
end robustID
function q str
-- quote
return quote & str & quote
end q
-- Peter
Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig
More information about the use-livecode
mailing list