[fpc-devel] restbase.pp LoadFromJSON calling StopRecordPropertyChanges;

Michael Van Canneyt michael at freepascal.org
Sat Jan 14 08:57:31 CET 2023



On Fri, 13 Jan 2023, Wayne Sherman via fpc-devel wrote:

> Is there a better way to track changed TBaseObject properties (and get
> rid of property index declarations)?

Not to my knowledge. If there had been, I would have used it.
The advantage of the index as opposed to using a custom assigned ID per
property is that the compiler enforces them and stores them in RTTI.
thus they are a safe mechanism.

>
> Lazarus knows which properties on a form have been changed from their
> default value and only properties which do not match the default are
> saved in the lfm file.  Can the same thing be used with TBaseObject
> properties?

No, since you don't have a 'default' value as in the lazarus sense: 
In lazarus, the default is a default as declared in the class.

In rest, the default value is what you got from the server.
(or empty in case you create a new object)

Your misunderstanding is that you consider any write of a property a
modification, as in Lazarus.

But in rest, only writes that happen after the load from the server 
are modifications.

Hence the stoprecording/startrecording which seems wrong to you, but is in
fact correct and as designed.

Michael.


More information about the fpc-devel mailing list