Thousands of Delphi add-on components and tools are available on the market, ranging from simple freebies to large open-source projects, from shareware programs to highly professional components. This appendix provides a list of notable open-source projects I've mentioned elsewhere in the book.
Delphi 7 includes the source code for two notable open-source projects:
Internet Direct (Indy) This project is covered in detail in Chapter 19, "Internet Programming: Sockets and Indy." The official website for Indy is www.nevrona.com/indy, but you should also refer to the Indy Portal at www.atozedsoftware.com/indy. Support is available on Borland's newsgroups.
Open XML This is a Delphi-based XML DOM and SAX engine, which I covered in Chapter 22 ("Using XML Technologies"). Refer to www.philo.de/xml for updates and more information. Support for Open XML is available on a mailing list you can sign up for on the website.
Delphi also includes a third open-source project: the ZLib compression library, covered in Chapter 4 ("Core Library Classes"). It isn't listed here because it is not Delphi based.
The Delphi programmers' community has been very active since its inception and has produced numerous tools that were and are freely distributed among programmers. A subset of these tools is available with complete source code, as is often true for commercial Delphi components as well.
The Joint Endeavor of Delphi Innovators, better known as Project JEDI (www.delphi-jedi.org), is not a single project but rather is the largest community of open-source Delphi developers. The site hosts its own projects, plus others contributed and maintained by members on separate websites.
Project JEDI started as an effort to translate APIs for specific Windows libraries distributed by Microsoft or other companies. Making available the Delphi units with the declarations of those APIs allowed any Delphi developer to use them easily. More recently, the goals of Project JEDI have been extended with the definition of many subprojects and groups. In addition to an ever-growing API library, you can find projects including the JEDI Visual Component Library (JVCL), the JEDI Code Library (JCL, a set of utility functions and non-visual classes, including a nice un-handled exception stack tracer), plus many projects in the area of graphics, multimedia, and game programming. Other activities range from a JEDI Version Control System client to the DARTH header conversion kit, from a programmer's editor to online tutorials.
Other JEDI-associated projects include Indy (covered earlier), GExperts, and the Delphree site (covered next).
GExperts (www.gexperts.org) is probably the most widespread add-in for the Delphi IDE, providing features ranging from a multiline Component Palette to source code navigation aids. Self-described as "a set of tools built to increase the productivity of Delphi and C++Builder programmers," it includes a large collection of wizards, including Procedure List, Clipboard History, Expert Manager, Grep Search, Grep Regular Expressions, Grep Results, Message Dialog, Backup Project, Set Tab Order, Clean Directories, Favorite Files, Class Browser, Source Export, Code Librarian, ASCII Chart, PE Information, Replace Components, Component Grid, IDE Menu Shortcuts, Project Dependencies, Perfect Layout, To Do List, Code Proofreader, Project Option Sets, and Components to Code.
There are many other Delphi-related projects in the open-source and community development areas. Although I cannot list all the relevant ones here, I can refer you to a website that tries to track all such projects. The Delphree (Delphi Free) website is available at delphree.clexpert.com.
This site has a comprehensive list of Delphi open-source projects, ranging from libraries to programmers' tools to end user applications.
Among the many ideas promoted by extreme programming, I find unit testing particularly interesting. Unit Testing is the continuous development of test code even before a program is written. To do this, it is important to have a proper test framework. A group of Delphi programmers created such an architecture, called DUnit. You can find it on SourceForge at dunit.sourceforge.net.