Set the Behavior Not Working

Peter Haworth pete at lcsql.com
Mon Aug 31 18:08:09 EDT 2015


The behavior is just a string of text so I think you need quotes around the
behavior:

set the behavior of the image to "button id 1721 of stack" & quote &
"myCoolGameStack" & quote

I set the behavior to the long id of the button, just because  I don;t have
write the clumsy code to put quotes around the stack name.

On Mon, Aug 31, 2015 at 3:02 PM Roger Guay <irog at mac.com> wrote:

> I think I understand your point here, Richard, except the association with
> your last sentence. I thought the long id would insure the use of a
> behavior of buttons outside the host stack. Put here is the thing:
>
> I successfully used this:
>
>         "set the behavior of last image to the long id of button
> “myCoolBehavior" of card  “Main””
>
>  (card “main” is in myCoolSameStack stack)
>
> When I use the message box for the behavior of that image, I get:
>
>         "button id 1721 of stack “myCoolSameStack””
>
> why then can I not script:
>
>         “set the behavior of the image to button id 1721 of stack
> “myCoolSameStack"?
>
>
> Thanks,
>
> Roger
>
>
>
>
>
> > On Aug 31, 2015, at 12:49 PM, Richard Gaskin <ambassador at fourthworld.com>
> wrote:
> >
> > Remember that in LiveCode objects are often containers, allowing us to
> do things like:
> >
> >  put field 1 into field 2
> >
> > This works with button contents, and image contents as well - try this
> in the Message Box:
> >
> >  put image 1
> >
> > You should see the binary image data in the Message Box, since that's
> the value contained in that control.
> >
> > Buttons can contain data as well.  When the button is used as a menu
> this data is the list of menu items, but any button can have data stored in
> it - try this on a standard push button:
> >
> >   put "Something" into btn 1; put btn 1
> >
> > The "set the behavior" command expects a *reference* to an object, but
> usually can't understand the *contents* of an object.
> >
> > So it may be helpful to think of your line as:
> >
> >   set the behavior of image id 1727 to \
> >     (button id 1721 of stack “mySillyStack”)
> >
> > ...which obtains the text of the button, if any, and then attempts to
> set the image's behavior property to that value.  If we had used the button
> we created in the above example as our object, your script line would be
> interpreted as:
> >
> >   set the behavior of image id 1727 to "Something"
> >
> > ...which of course can only confuse an otherwise-reasonably-smart
> LiveCode engine.
> >
> > So as a general rule, having a habit of using the long id of an object
> will give you a reliable *reference* to an object whenever's a reference is
> needed, such as in the behavior property.
> >
> > --
>
> _______________________________________________
> 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