Object Debugger for Borland Delphi 2
Viewer Only Version (Release 0.30)
Copyright Marco Cantu' 1996

What is the Object Debugger?
============================
The Object Debugger allows you to inspect the published 
properties of the components of a program at run time, 
and edit them. It is a sort of RUNTIME OBJECT INSPECTOR!
You simply place the component in one of the forms of your
project, usually the main form, and when the program starts, 
the Object Debugger window is automatically opened. Before
shipping the program you then remove it.


The Form
========
The left treeview shows the current forms of the project, 
with their components as subtrees (components can be nested, 
in fact, but notice that the tree represents components 
ownership, not controls parenthood). 
The right pane shows the properties of the current component
or form. Enumerated and set properties are shown as they appear
in the Object Inspector (although you cannot expand a set). 
Class based and component based properties can be expanded, 
to see subproperties.
There are two buttons you should press to update the treeviews
when a new form or component is dynamically created or one of 
its properties change.

The "Limited" Viewer Version
============================
The Full version (currently still not in limited beta) allows 
editing all of the properties, changing their values at 
run-time. 
This version is a "VIEWER ONLY" limited version, distributed 
for free and FREELY DISTRIBUTABLE, provided you don't change 
this README file and don't charge money for it (of course). 

Known problems/open issues
==========================
The trees are not sorted. Sorting them takes far too much time.
I'm looking for custom solutions (i.e. sorting before adding),
and inpecting the updated TreeView components that are 
being released.

Installation
============
To install the component put the two DCU files and the DFM file 
in your preferred compoennt directory, and install _OBJDEBV.DCU_ 
(not the other unit, which is a secondary unit with its form file) 
as usual in Delphi. At the moment this is available only for 
Delphi 2 (treeviews do not work in Delphi 1).
This is the component interface, anyway:
 
	type
	  TObjectDebugger = class(TComponent)
	  public
	    constructor Create (AOwner: TComponent); override;
	    // update the forms and components tree
	    procedure Update;
	  end;

Disclaimer
==========
I've tried at my best to make this program work smoothly, but 
since it uses low level and undocumented calls at a great extent
I won't bet it always works (this is still a beta, you know).
However, some weeks of testing have shown no major problem. 
In case of errors please let me know, but always remember you
are using this software at your own risk (so the saying goes)

The Future
==========
I started this as a project for my forthcoming advanced 
Delphi book (probably titled "Delphi Developers' Handbook").
After working on it for a while, I've decided to place the
viewer version in the public domain. The book will include 
the complete and final source code, along with a detailed
description of the use of RTTI information in Delphi.
I'm still undecided on how to distribute the full blown 
version (which is not far from a decent version).  
If I'll invest more time in it, I might try to deliver it 
as shareware. Stay tuned.

Piacenza (Italy), July 1st 1996

Marco Cantu' (WinTech Italia Srl)
Author of "Mastering Delphi 2"
100273,2610@compuserve.com
http://ourworld.compuserve.com/homepages/marcocantu

