Paul.

Having a more complete description seems right to me. You are essentially 
saying that if you use the moniker “the currentCard” that LC should know what 
you are intending, the is, the current “card”, and not the current “something 
else”.

It has to be one of those cases where, as Danny Goodman once said, “If a line 
of code seem like it ought to work but does not, try using a “do” construction 
to force another layer of resolution;

on mouseUp
put the currentCard of stack "Untitled 1" into tCardName

do "set the myProperty of" && tCardName && "to tValue"

end mouseUp

This works, and shows that the referencing of these sorts of things in LC, like 
in HC, is not quite as they read like.

Craig


> On Oct 24, 2023, at 1:00 PM, Paul Dupuis via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> I think I found a oddity in the "currentCard" property.
> 
> The documentation states that the currentCard property return the short name 
> of the current card of a stack:
> 
> for example: put the currentCard of stack "Untitled 1" into tCardName
> 
> You can then execute code such as: set the myProperty of cd tCardName of 
> stack "Untitled 1" to tValue
> 
> However, if the card does not have a name set, then current card returns 
> "card id <idnumber>", example: card id 1002 and the above 2 lines of code 
> return a runtime error of 'can't find card'
> 
> put the currentCard of stack "Untitled 1" into tCardName
> set the myProperty of cd tCardName of stack "Untitled 1" to tValue
> 
> WORKS for cards with a name
> FAILS for cards without a name (where currentCard returns 'card id <number')
> 
> I think currentCard should just return 'id 1002' rather than 'card id 1002' 
> if a card has no name.
> 
> Trying to execute: set the myProperty of cd tCardName of stack "Untitled 1" 
> to tValue WHEN tCardName contain 'card id 1002' produces a run time error
> 
> But trying to execute: set the myProperty of cd id 1002 of stack "Untitled 1" 
> to tValue works.
> 
> Oddly, set the myProperty of cd tCardName of stack "Untitled 1" to tValue 
> FAILS if tCardName contains "id 10001" (and yes that card with that ID exists)
> 
> Oddly again, set the myProperty of the currentCard of stack "Untitled 1" to 
> tValue DOES WORK whether they have a name or not
> 
> But again, breaking that example above (set the myProperty of the currentCard 
> of stack "Untitled 1" to tValue) into 2 lines:
> put the currentCard of stack "Untitled 1" into tCardName
> set the myProperty of cd tCardName of stack "Untitled 1" to tValue
> FAILS if the card has no name.
> 
> Something just seems off here?
> 
> _______________________________________________
> 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

_______________________________________________
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