Yes, thanks very much Mark. I do get it completely now, if a little belatedly!
Cheers Graham > On 19 Apr 2017, at 09:15, Mark Waddingham via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Hi Graham, > > On 2017-04-17 21:07, Graham Samuel via use-livecode wrote: >> I have a stack where the user is allowed to select vector objects. For >> this example, let’s assume some objects are already selected. >> I am using LC 8.1.4 rc1 on a Mac running Sierra, and I have a bit of >> code that says in part: >> if the selectedObjects is not empty then >> repeat with i = 1 to the number of lines of the selectedObjects >> … > > Just to clear up precisely what is going on here... > > There are a number of pieces of syntax in LiveCode which return control > references (e.g. field 1). As LiveCode represents such things as strings > there is an ambiguity when you do: > > <something text related> of <syntax returning control reference> > > e.g. the number of lines of the selectedObject > > In this case it could either mean: > > 1) the number of lines in the string returned by the selectedObject > > 2) the number of lines in the control returned by the selectedObject > > The engine tends towards case (2) in most cases (I can't say all cases > without going through all such things and checking) - including this one. > >> OTOH, if I change the second line to >> repeat with i = 1 to the number of lines of (the selectedObjects0 >> the code works as expected. > > The presence of brackets here force evaluation of 'the selectedObjects' > as a string and not as a control. > >> If I execute in the message box: >> put the number of lines of the selectedObjects >> I sometimes get no result and sometimes “source is not a container”, >> but if I change the line to: >> put the number of lines of (the selectedObjects) >> I always get the right answer. > > In the first case, whether or not 'the number of lines of the selectedObjects' > will do something sensible depends on: > > 1) if there is a selectedObject (otherwise you are trying to get the > number of lines in no object - which makes no sense) > > 2) There is a selected object, but it has no idea of a 'text' property > so doesn't have anything for 'the number of lines of' to process. > > Hope this helps! > > Mark. > > -- > Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/ > LiveCode: Everyone can create apps > > _______________________________________________ > 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