Jamie Oglethorpe is the originator of two open source projects.


This is the home page for this project. The Help Topic editor and its own help project are available for download from this site.

It started as a "Sunday Afternoon" project. I felt guilty about not having help in my windows programs. You know how it is. With some hand waving, I explain the my programs are intuitive and easy to use, and they don't need a help file. Unfortunately Delphi ships with the Microsoft Help Project which is not the easiest thing to use. You need Word, or some RTF capable word processor, and you link topics using footnotes with special characters to indicate the kind of link.

I don't know about you, but I really hate having to work with a reference card next to me. A few months later I have forgotten everything again, and have lost the reference card. For me, the computer has to remember these things. With Delphi, you can write a simple RTF editor as it has access to the Microsoft RTF components. It takes a bit of daring, as the RTF format is rather complicated, but at least it is text. I have no fear for text manipulation.

The idea was for the program to keep track of the linkages between topics, and to handle all those horrible things that I can never remember.

I posted my experience on the SDForum newsgroup and Juanca Añez, the author of the dUnit testing framework, suggested that I make it an open source project. I did that after doing quite a lot of work to tidy up the code. After all, one gets quite sloppy on a Sunday afternoon and I want to publish code I am proud of.

Unfortunately the project is moribund through lack of interest. If anybody is interested in reviving it, I will be very happy to hear from you.


This is a Delphi application framework and represents my personal best practices. It is the fruit of a change in my personal practice over the last decade. Whenever I start a new project, I look for code in earlier projects that I can reuse in the new one. With this framework I have "refactored" the more useful code from the earlier code to make it more generally useful. For example, I have a reporting engine based on SQL database queries that can be used to preview, print or extract the data. The extracted date can be in Microsoft Excel spreadsheets, HTML web pages, formatted text (i.e. line printer format) or CSV files. These capabilities are automatically available in the new project.

The SqlReporter is based on this code, but still needs to be fully integrated into JamFram.

JamFram has a very steep learning curve, and I am still working on the documentation. I intend to build a project generator to make it easier to work with. It is very much work in progress.

My motivation for making this an open source project is to protect my intellectual rights. As a sub-contractor I often have to sign a contract that assigns any inventions to my client. By publishing the framework I can point out that I am bringing the code in with me, and can negotiate the right to any improvements I make to the framework while working on the contract. Additionally, the availability of the framework as open source makes my clients happier with its use. They are not dependant on me for continued support.

Of course, Jamie O cc understands JamFram better than anybody else.

The articles "From the front lines" chronicle how JamFram got to be as it is.