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!