The Delphi 2.0 runtime Object Inspector/Browser.

	This is a component that has most of the features of Delphi's Object Inspector, but is merged with a view of your application's object hierarchy.  Clicking on any object in the left (Browser) pane will have all of the selected objects published properties displayed in the right (Inspector) pane.  You can change any of the values in the Inspector's property list and see that property updated in real time on the object selected.  It basically does everything the Delphi object Inspector does except it doesn't use Borland's custom property editors,  and it's changes won't be permanent.  (i.e. They don't change that object's property in the Delphi IDE.)
	It has one advantage over Delphi's Object Inspector - That being that changes don't have to be bound into the VCL for it to find them.  For instance if you added a published property to one of your forms, the Delphi IDE wouldn't be aware of it because the TForm in the VCL has no such property, but my Object Inspector would see it and allow you to change it.
	There are a few custom object editors installed - i.e. a button with ellipses ('...') will be displayed when a property of that type is selected.  You could also double click on an object of that type in the browser window.  There are currently editors for the TStringList, TFont, and TDataset.  It's easy to write custom object editors, and I have several others, but that option is only available with the registered version.  
	If your version of Delphi doesn't come with database support (Is that even possible?) remove the 'uses DSED' from Reginsp.pas.  The inspector itself uses the 'DB' unit, so if you don't have that unit I guess it won't work.  EMail me and I'll send you a version that doesn't use it.

Registration:
	Yes, this is a shareware component.  First, you'll notice the not-terribly-annoying nag screen that appears every time you display the Inspector.  No big deal, but - there's one more catch.  Each time you show it, it will pick a random number (0-75) and only display that many components at any give time.  If that number's too low, you can just close it and redisplay it again.
	Sorry about the hassle.
	Register users, of course will not see that message, nor will they have any limitation to the number of components they can display.  Also, they'll get several more custom object editors, and the ability to create their own editors.

Registration costs a mere $40.  (US dollars.)
With that I'll send you the non-crippled version and source code for the object editors.  You'll also get any updates for a year or so for free.  

To Register : 

Send email to Adam.Cutchin@CBN.org and I'll tell you where to send a check or money order.  (I'm moving soon, no need to confuse the issue.)

Please send me email and tell me what you think, regardless of whether you're going to register. 

How to install the TInspector:
	I'm sure you know the procedure.  Component | Install | Add... | Browse | Select whatever directory this file is in, then select RegInsp.Pas.  

	Rebuild your library.

	If something goes wrong while rebuilding the library, do Component | Install | Add... | then select RegInsp and click remove.  email me with the problem and I'll fix it.

	You'll have to change the DLLpath property to that same directory when you drop the component on a form.  You might want to modify RegInsp.Pas to reference that directory and rebuild your library, also.

Using the TInspector:
	It's remarkably easy.  Drop it on any form in the project and it will work application wide.  Let me stress that.  Drop it one, and only one form.  Just make sure it is an auto-create form.  (you may as well drop it on your application's main form, but there's nothing forcing you to.)  Once the application is running, hit the hotkey (it defaults to Ctrl-Alt-End) and it will pop up.  Nag screen and all.  Pretty simple.

The TInspector Component.

The TInspector Component is a non-visual component that acts as an interface to the Object browser / Inspector.  It is inherited straight off the TComponent.  It has the following additional properties, methods and events:

Properties:
AutoStart:	Specifies whether or not the Object Inspector will monitor keypresses and
				show itself when it's hotkey is pressed.
DLLPath:	This is the directory that the Object Inspector will look in for it's Icon DLL.
HotKey:	If AutoStart is true, this is the hotkey combination that will bring up the inspector.
IconSize:	This is the size, in pixels of each icon in the Inspector's tree view.

Methods:
Show:		Calling this will show the Object inspector.  Fires BeforeShow first.

Events:
BeforeShow:	This is called right before the Object Inspector is shown, either through the 
				Hotkey or through TInspector.Show.  It is called with a boolean parameter -
 				'CanShow.'  Setting that to false prevents the Inspector from being displayed.

The Icon DLL:
	The Object Inspector uses a DLL to store the bitmaps displayed on the tree view.  I had originally simply included the icon resource files in the unit, and had it find the resources from its own EXE, but that created errors when rebuilding my library.  (Since all the bitmaps the inspector uses already existed in the VCL there were two identically named resources and that creates an error.)  To allow the inspector to display an icon with your own custom components, just edit Icon.Dpr and have it use a resource with a 24x24 bitmap named after your component.  It must start with ‘T.’  (In other words, it can only display an icon for a object type whose class starts with ‘T.’  Is that too limiting?)  Any component that’s inherited off a component with an icon that the Inspector knows about will have its ancestor’s icon, if it’s own can’t be found.