[Lazarus] Undo for Form Designer

Juha Manninen juha.manninen at phnet.fi
Fri Jan 1 13:39:53 CET 2010

On torstai, 31. joulukuuta 2009 17:08:11 Mattias Gaertner wrote:
> Notes:
> Changing a property (e.g. Left) changes some other properties too and
> there is no hook. So for undo you must store the whole form plus the
> descendant forms plus the referenced forms plus the source changes. This
> costs much time and memory. For example with some images you easily get
> a megabyte.
> So it would be unwise to create an undo step on every change.

It should be possible to store only the changed properties, thus using less 
memory. A simple comparison with the previous state reveals the changes.

Descendant and referenced forms make it more complicated. I think they can't 
be ignored because the program could end up being broken otherwise.

Undo would be used mostly for Delete, Move and Size, as noted in other mails 
in this thread. Including binary images in the undo buffer sounds like an 
overkill. Such images are always loaded from an external image, they are not 
edited or created in the Form Designer.

My thought here were at "abstract" level because I don't know the code enough 
now to create anything concrete.

Juha Manninen

More information about the Lazarus mailing list