Does this site look a little plain?

This site uses css techniques supported in newer browsers.

Delphi is my everyday language. Here you'll find interesting code examples, concept tests and handy utilities.

The programs on this page were created in either Delphi 5 Enterprise or Delphi Studio 2006. For the most part, they should be compatible with any Delphi version (5+) but I'll note any exceptions. Any required 3rd-party libraries or components will be noted.

All of the projects include source code. Since only some of them are of any use to a non-programmer (and some are of no use to anyone!) I have separated them into two groups - those with executables and those without.

Projects With Executables

In addition to serving as programming examples, these programs may actually do something useful or fun, so an executable is included.

CSView
A utility for viewing the contents of CSV files in a handy format that doesn't require Excel. It includes a CSV parsing function that you can extract for your own use that should support everything mentioned in the recent CSV RFC, including multi-line quoted fields. Now built in BDS2006 to take advantage of and demonstrate the new TStrings.StrictDelimiter property. It includes compiler directives so it can be built in older versions with the new functionality disabled.
250K, updated 2008-01-21
Gradient
A little project to draw an even gradient from one color to another on a canvas. Not terribly useful, but fun to play with (so it includes an exe).
172K, added 2005-10-08
LibDoc
A utility to create library documentation from specially coded comments in source code files. Uses a TClientDataSet to gather and sort the text. Runs interactively or via command-line parameters for use in a build script. I consider this one a full-blown development tool. Includes detailed instructions.
313K, updated 2007-10-11
NumWords
Every programmer has seen (if not done) a version of the old check writing number-to-words routine, but recently somebody on the Borland newsgroups asked about converting the words into a number. I couldn't resist, and this project does both. Since it might be interesting for a non-programmer (greetings fellow nerd!), it includes an executable.
177K, updated 2007-02-12
QuasiCalc
This is actually a fairly old project, recently re-discovered. The game Star Control 2 was my favorite space game of all time, and it had a way of navigating the galaxy called "quasi-space". This is a distance/fuel-use calculator for using quasi-space portals. The game has been open-sourced under the name "The Ur-Quan Masters"!
197K, added 2008-07-03
RandFile
A program that generates files full of random, nearly uncompressible data. This is useful for testing programs that use compression, disk spanning and file splitting/joining. It works from the command line, too.
198K, updated 2006-04-26
RMBackup
A utility I wrote for doing my daily backups across the LAN. Lots of control over what gets included/excluded and detailed logging. You can even chain multiple backup jobs together or run them as scheduled tasks. The backup job definitions are simple name-value text files. Requires LogicLib.
307K, updated 2008-04-19
SBPDraw and SBPShift
A friend of mine has a computer-controlled (CNC) router table. These utilities will respectively display and adjust the ShopBot (*.SBP) data files that tell the router what to do. SBPDraw has examples of scaling and drawing directly onto a canvas and includes a sample SBP file. SBPShift is used to move a project's origin to a specific or relative position and accepts command-line parameters making it suitable for batch adjustments.
253K and 183K, updated 2007-08-11
Spoin
An easy to use GUI file splitter and joiner utility. Accepts command-line parameters, too.
276K, updated 2008-08-20
SuperCopy
This console utility does bulk copying/moving/renaming of files with very flexible options for the placement and naming of the target files. Run without arguments or read usage.txt for instructions.
65K, added 2008-07-03
Touch
My take on the classic command-line file date/time updating utility. Requires LogicLib.
56K, added 2008-05-12

Example Projects

These projects are of interest primarily to other Delphi programmers, so do not include a binary. They typically include classes or functions to put into your own programs, or are simply working examples of interesting or non-obvious programming solutions.

AutoQuit
An example of automatically shutting down a program after a period of inactivity. It shows how to monitor application-based or system-wide mouse and keyboard activity to keep track of idle time. It also demonstrates how to close open dialogs when shutting the program down.
6K, added 2007-01-28
BuildDate
A utility that creates an include file to get an easily accessible build date constant into your Delphi program. See readme.txt for instructions. I just added new command-line options.
2K, updated 2008-02-15
Mutest
A project showing how to use a mutex to prevent an application from being run more than once. It also shows how to use WM_COPYDATA messages to communicate with the running program.
4K, updated 2006-07-29
PgAsyncQuery
A class for interfacing with the PostgreSQL client dll and running asynchronous queries. Based on Zeos library code and created because of that library's lack of asynchronous, cancellable queries. This archive includes the class and a complete project demonstrating its use. See readme.txt for more info.
9K, added 2006-03-01
SkypeTest
A simple project that communicates with the Skype API using window messages. You need to have Skype installed for this to do anything.
4K, updated 2008-02-29
Terminator
A project demonstrating the use of CreateProcess and TerminateProcess, and how to monitor the processes you start to see when they finish.
5K, updated 2007-02-06

Delphi Links

I used to have a big list of component and reference links here, and had to edit them once in a while as links died or I added new ones. I have removed this in favor of just giving you a link to my del.icio.us links that have a Delphi tag.

Ray Marron's del.icio.us Delphi Links

If you work with multiple computers, you know what a pain it can be to keep your bookmarks in sync. Del.icio.us makes it easy to have them available everywhere and the tagging makes finding the links you need easy. Try it!