The entire purpose of a demo application is to show the functionality of a specific product. In Delphi you will find that most of the Demo applications will be related in one way or another to a Component, Unit, or some sort of IDE enhancement. It seems that for some strange reason the word Demo has also come to have the (unstated) meaning of being less useful then the product itself.
When I first started working with Delphi (back in `94 in case your curious) I was hard pressed to find anything other then some obscure references to Pascal that while they were close were not completely useful. This bothered me so much that I actually spent more time creating an Examples Folder for myself to reference (In case your curious currently that same folder upgraded over the years has over 400 projects in it). Every time I set out to write an example I took a different mindset then others (though I didn't know it at the time). Instead of writing down something that just showed me the basic idea of what I wanted to do I took it to the fullest extent. Instead of just writing an example of how to drag an item from one list box to another (back then you couldn't reliably perform it to the OS) I wrote a simple system explorer. Later I upgraded it when Win32 and Delphi 2 came out to be a complete replacement for Windows Explorer. At one point in time I even set out to create a spot on my website to display all of these examples and make them readily available to the public. Well I never completed that one. It still has some useful code in it so it still exists (you guessed were).
If your still reading this then I'm sure that you are asking yourself why am I rambling on about my hard drive and how I've managed to keep sections of it around for almost 9 years? Well the best answer that I can give you is this. It is my feeling that a Demo or an Example application does not have to be rudimentary and/or useless to convey a point and to aid those still learning a language. Seldom have I had people download any of my Demo applications (beginner or advanced user) and write me to say that they couldn't understand the code in the application itself. If they did I always took the time to explain it the best that I could. I have on the other hand received latterly 100's of emails and possibly 1000's regarding my "Demo" and "Example" applications being used in every day application because after viewing them a company decided that they were much more then sample code to be looked at.
Keep this in mind as you look thru the applications designed by Indy. They are one of the few organizations that maintains a set of standards (thou not posted to the world) that tries to keep their Demos and the Code as useful to the Developer writing their first TCP/IP application to the level of the Business looking for a good FTP client that won't cost them an arm and a leg and yet can be modified easily and understood easily by their own developers.
I now step down from my soapbox and leave you to that witch I have written.
Sincerely,
Jeremy Darling
Owner/Developer Eon Clash
http://www.eonclash.com