setProp question

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

setProp question

Geoff Canyon via use-livecode
Is there any way to intercept setProp messages for properties you *don’t* want to set?

I find with my poor typing skills I keep typing

Set the <NonexistentProperty> of <something>

where NonexistentProperty is a mistype of SomePropertyWhichHasASetPropHandler

and so I keep creating lots of superfluous properties for the object. Annoying and sometime painful to clean up.
When you are initially creating the object properties this is not a problem but once the structure is set up I'd like to declare “enough”, maybe with a LockProperties command
(come to think of it locking changes to existing properties might be useful too, though that can be coded into each SetProp handler)

Also, on another topic: my LiveCode windows have suddenly acquired a second title line, which when dragged tends to miniaturise the window and then display it somewhere else or at full screen, and each time a script editor window is opened it is moved higher up the screen until it moves under the menubar and becomes unusable. Looks look a system thing (Mac High Sierra) but I’ve never seen it before and only just changed to LC9.0.1. Any suggestions as to how to stop this major annoyance would be appreciated - or at least configure it if it really is a new LC ”feature".
_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
I don't know.

BUT, you can open up the properties palette and manually delete custom
props.

I'm sorry, I know that's a bit of a pain in the bum

Richmond.

On 16.10.18 г. 10:49 ч., Neville Smythe via use-livecode wrote:

> Is there any way to intercept setProp messages for properties you *don’t* want to set?
>
> I find with my poor typing skills I keep typing
>
> Set the <NonexistentProperty> of <something>
>
> where NonexistentProperty is a mistype of SomePropertyWhichHasASetPropHandler
>
> and so I keep creating lots of superfluous properties for the object. Annoying and sometime painful to clean up.
> When you are initially creating the object properties this is not a problem but once the structure is set up I'd like to declare “enough”, maybe with a LockProperties command
> (come to think of it locking changes to existing properties might be useful too, though that can be coded into each SetProp handler)
>
> Also, on another topic: my LiveCode windows have suddenly acquired a second title line, which when dragged tends to miniaturise the window and then display it somewhere else or at full screen, and each time a script editor window is opened it is moved higher up the screen until it moves under the menubar and becomes unusable. Looks look a system thing (Mac High Sierra) but I’ve never seen it before and only just changed to LC9.0.1. Any suggestions as to how to stop this major annoyance would be appreciated - or at least configure it if it really is a new LC ”feature".
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
In reply to this post by Geoff Canyon via use-livecode
I don't know of a way to intercept them, and I did look, because I
have/had exactly the same problem.

I wrote a script (ExplicitProperties) which does a decent, but
imperfect, attempt to find places you have referenced a customprop, and
checks whether it is a "known" one. That was back in 2012, and I haven't
used it much in the meantime, so I don't know what the latest ersion of
LC it has been tested / used with - but it was useful to me then.

You can find it at
http://www.tweedly.org/showpage.lc?page=ExplicitProperties with an
explanation of what it does.

So, you very reasonably ask, why does the author no longer use it ? :-)

Well, I just gave up on using custom properties completely. Probably not
the right thing to do, but it works for me.

Alex.


On 16/10/2018 08:49, Neville Smythe via use-livecode wrote:

> Is there any way to intercept setProp messages for properties you *don’t* want to set?
>
> I find with my poor typing skills I keep typing
>
> Set the <NonexistentProperty> of <something>
>
> where NonexistentProperty is a mistype of SomePropertyWhichHasASetPropHandler
>
> and so I keep creating lots of superfluous properties for the object. Annoying and sometime painful to clean up.
> When you are initially creating the object properties this is not a problem but once the structure is set up I'd like to declare “enough”, maybe with a LockProperties command
> (come to think of it locking changes to existing properties might be useful too, though that can be coded into each SetProp handler)
>
> Also, on another topic: my LiveCode windows have suddenly acquired a second title line, which when dragged tends to miniaturise the window and then display it somewhere else or at full screen, and each time a script editor window is opened it is moved higher up the screen until it moves under the menubar and becomes unusable. Looks look a system thing (Mac High Sierra) but I’ve never seen it before and only just changed to LC9.0.1. Any suggestions as to how to stop this major annoyance would be appreciated - or at least configure it if it really is a new LC ”feature".
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
"...Well, I just gave up on using custom properties completely. Probably not
the right thing to do, but it works for me. "

Alex.

Really? You abandoned custom properties? I cannot live without them, though
I rarely use the setProp and getProp control structures.

Craig Newman



--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html

_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
In reply to this post by Geoff Canyon via use-livecode
Not to mercilessly flog an expired Equine, but one of the great things about custom properties, is that you can pass the long ID of an object to a command or function (think behaviors), and so reference it's custom properties in said command or function. Essentially this behaves as group of variables with the object as the scope.

For instance I have a command that pops up a "tooltip" (not a real tooltip but a field) when I right-click a record in a datagrid, containing summary information about the record clicked on. How do I know what columns belong in the summary data? I store them in a custom property in the datagrid, then pass the long id of the datagrid to the command.

Think about that. Not only do I have the long ID of the datagrid, but also the long ID of the group (if any) the datagrid belongs to, the long id of the card, and the stack reference. Then I can reference all the regular and custom properties and know I am dealing with exactly that object clicked on, and not a copy of the object I forgot to delete. Just by passing the long ID, instead of a string of parameters. It's like a package of variables, AND the variables are persistent between sessions.

Bob S


> On Oct 16, 2018, at 04:13 , Alex Tweedly via use-livecode <[hidden email]> wrote:
>
> I don't know of a way to intercept them, and I did look, because I have/had exactly the same problem.
>
> I wrote a script (ExplicitProperties) which does a decent, but imperfect, attempt to find places you have referenced a customprop, and checks whether it is a "known" one. That was back in 2012, and I haven't used it much in the meantime, so I don't know what the latest ersion of LC it has been tested / used with - but it was useful to me then.
>
> You can find it at http://www.tweedly.org/showpage.lc?page=ExplicitProperties with an explanation of what it does.
>
> So, you very reasonably ask, why does the author no longer use it ? :-)
>
> Well, I just gave up on using custom properties completely. Probably not the right thing to do, but it works for me.
>
> Alex.


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
Wow! that very cool

Can you post a sample stack, or snippet of code for this

"Just by passing the long ID, instead of a string of parameters. It's like a package of variables, AND the variables are persistent between sessions."

BR

On 10/16/18 5:13 AM, Bob Sneidar via use-livecode wrote:
> For instance I have a command that pops up a "tooltip" (not a real tooltip but a field) when I right-click a record in a datagrid, containing summary information about the record clicked on. How do I know what columns belong in the summary data? I store them in a custom property in the datagrid, then pass the long id of the datagrid to the command.
>
> Think about that. Not only do I have the long ID of the datagrid, but also the long ID of the group (if any) the datagrid belongs to, the long id of the card, and the stack reference. Then I can reference all the regular and custom properties and know I am dealing with exactly that object clicked on, and not a copy of the object I forgot to delete. Just by passing the long ID, instead of a string of parameters. It's like a package of variables, AND the variables are persistent between sessions.
>
> Bob S


--
Svasti Astu, Be Well!
Brahmanathaswami

Get the SivaSiva app, it's free:
https://www.himalayanacademy.com/apps/sivasiva

_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: setProp question

Geoff Canyon via use-livecode
I have a real job (I develop for the company but it isn't what they pay me to do), but I will throw something together when I get a little time today.

Bob S


> On Oct 19, 2018, at 06:59 , Sannyasin Brahmanathaswami via use-livecode <[hidden email]> wrote:
>
> Wow! that very cool
>
> Can you post a sample stack, or snippet of code for this
>
> "Just by passing the long ID, instead of a string of parameters. It's like a package of variables, AND the variables are persistent between sessions."
>
> BR


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode