UKService,
I looked at the fw\samples\ribbon2.prg example and there is some poor coding in it. It does not release a number of fonts, brushes, and bitmaps that it creates. This has nothing to do with the ribbonbar class and its associated classes.
If you have defined your ribbonbar similarly to ribbon2.prg then perhaps you have the same problem. Mainly there are several NOWAIT dialogs that are defined in functions using LOCAL fonts, brushes, and bitmaps. These resources need to be destroyed when the main app is ended but the locals cannot be accessed by the main app.
The best solution would probably to write the app as a class and have three arrays as data of the app; one array for fonts, one for brushes and one for bitmaps. Then the End() method of the app class could destroy all these resources.
HOWEVER, I don't think this is the reason for your app slowing down. These resource are only defined once per application run. I think you have resources that are defined every time a certain function or routine is called and those resources are never released.
Here is a test. Add checkres() to the end of your app. Open the app, then immediately close it. Ideally, there should be no unreleased resources in the file, but if there are, just ignore them for now. Keep a copy of the checkres() file. Now, run the app again and perform several routines, then close it again. Now compare the previous and current checkres.txt files. I expect you are going to see some new resources that were not in the first file. These are part of the problem.
You can isolate certain routines by erasing the checkres.txt file at the beginning of the routine, and calling checkres() at the end of the routine.
Regards,
James