CodeSite is an impressive Delphi debugging tool based on the time-honored approach of sending messages from an application to a message viewer.  CodeSite handles much more than simple strings, and provides an extensive set of tools to aid in analyzing the messages generated by an application.  If you think you're spending too much time debugging, you need to take a look at CodeSite.

For more information about this plug-in, please refer to the ReadMe file included in the download.

Note: This plug-in only supports CodeSite version 1.x.


CodeSite is comprised of two parts: the CodeSite Object and the CodeSite Viewer.  The CodeSite Object is accessed through an interface unit, and is used to send messages to the viewer.  The messages can contain all kinds of information, including objects, streams, string lists, and of course, standard data types such as Integers and Boolean values.  There is even built-in support for common data structures, such as TColor and TRect.

The CodeSite Viewer consists of three panes: the message list, the inspector pane, and the scratch pad.

Message List
The message list displays all messages sent to the viewer.  The fundamental difference between CodeSite and all other debug-messaging tools is that each CodeSite message has a type associated with it.  There are fifteen different message types available including csmInfo, csmCheckPoint, and csmObject.  In addition to the message, each line in the message list can display an icon representing the message type, a time-stamp of when the message was generated, and the name of the application that generated the message.

Since each CodeSite message is time-stamped, it is possible to determine the amount of time that has passed between messages.  Simply select two items in the message list and the time difference between them is displayed in the status bar.  Combining this feature with automatically numbered checkpoints,  CodeSite makes it possible to gather basic profiling data.

Another unique feature of CodeSite is the ability to group messages by method.  Messages grouped in this manner appear indented in the message list.   Of course, method groupings can be nested, which makes them very effective for debugging event-driven applications and recursive methods, functions, and procedures.

Inspector Pane
The inspector pane displays additional information associated with a message.  As such, its display depends on the type of message selected in the message list.  For example, if a csmObject message is selected, the inspector pane shows an Object Inspector-like view of all published properties and their values for the object (see Figure 3, below).  You can also stream components to CodeSite (notice the TDBGrid called "GrdIssues" in Figure 1, above).

Scratch Pad
The scratch pad, as its name suggests, is an area for displaying temporary information-up to 100 different topics.  Each line in the scratch pad represents a topic and displays the most recently received message for that topic.  The scratch pad is great for displaying the current mouse position and other rapidly-changing, transient data where a history is not needed.

CodeRush Integration
CodeSite provides several advanced features for CodeRush users.  In particular, a set of 25 keyboard templates and a message expert make it easier to enter CodeSite statements into your source code.

Plus, the CodeSite Viewer integrates seamlessly into the Delphi IDE as a CodeRush panel plug-in.


Version 1.12a

CodeRush 5

Copyright 2004 Ackerson Software, All Rights Reserved.
Ackerson Software
CodeSite Panel

Author: Raize Software

Created: February 01, 2000

Plug-In Type: Panel

Options Page: No
This plug-in is NOT currently supported.
This plug-in is not the property of Developer Express; it is the sole property of its author.  As such, Developer Express cannot be held liable for any incidental damages that may be related to the usage of this plug-in.
Figure 1: Stand-alone CodeSite message viewer.
Figure 2: CodeSite Message Expert for CodeRush.
Figure 3: CodeSite totally integrates with Delphi as a CodeRush Panel.