ADUG Adelaide Meeting - July 2021

Hello Folks!

This is a short reminder that the next ADUG Adelaide meeting is on this Tuesday, 20th July 2021 at 6 PM local time.

The topic for this month is implementing a multi-level undo feature in your application. For more information have a look here.

Here are the details for the Zoom meeting:

Topic: ADUG Adelaide July 2021 Meeting
Time: Jul 20, 2021 18:00 Adelaide time
Join Zoom Meeting
https://us02web.zoom.us/j/87310807650?pwd=OUp4Z0c2OTZmSjc3UmFEdFJEY3lvQT09

I hope to see you all there.

Salut,
Mathias

I couldn’t make the meeting but very interested in the subject - was the meeting recorded?

Is there any code from the demos being shared somewhere?

Hello @vincent,

It was an educational project that I used to introduce the children (12 - 16 years) of a friend into programming. It is fairly basic. The undo stack is based on an TObjectStack< T >. You can get the source code from here:
https://bitbucket.org/mathias_burbach/undo/src/master/

I tried the same in Lazarus with FreePASCAL but the generic classes ported from Delphi did not work. In Lazarus I had to implement my own TObjectStack class returning TListAction items.

One of the more funny things of the generic implementation is that TObjectStack< T >.Pop is a procedure. :face_with_raised_eyebrow:

Salut,
Mathias

Thanks - I was hoping it would be a full command pattern style undo/redo? It’s been on my todo list for a long time to implement undo/redo in FianlBuilder, but it’s a huge task and never seem to find the time.

Yes, I can understand. And we did discuss the complexity of implementing something like this for MS Excel. Steve uploaded an Excel workbook to Office 365 and we both edited it. When we tried to undo certain changes we could only do it on our own changes, not the changes made by other users. In fact I was able to clobber a change done by Steve on the same cell by asking for an undo action in MS Excel 365.

This project was really meant for a group of smart children trying to dip their toes into programming. I enjoyed preparing it and in the end all 4 of them installed Delphi Community Edition and completed the project.

Salut,
Mathias

1 Like