Marco's Web Center

Menu for Development

Site Menu
Object Pascal Handbook
Delphi Handbooks Collection
Mastering Borland Delphi 2005
(Old) White Papers
(Old) Conferences

My Other Sites
Italian Site (
the delphi search

Spirit of delphi

Home My Blog Books Object Pascal Marco

Home: Development: CanToolsW

CanTools Wizards

Cantools Wizards for Delphi by Marco Cantý

Updated for Delphi XE

Here you can find the lastest versions of the CanTools package for Delphi:


The version 2009 of Cantools features a set of wizards and a component. The (old) description of some of the wizards is below. The wizard installs a submenu under the Tools menu, but you can choose to use a separate first level menu as well.

  • ListWizard: does at the source level what generics do for you. Useless.
  • OOPFormWizard: let you remove the form components from the publsihed section, making them private, by adding to the form the required manual initialization code.
  • Settings: change menu position and enable clipboard tracking (shaky). third option is useless...
  • About: a very old about box.
  • Object Inspector Font: let's you change the font of that pane. Great for presentations, not all fonts adapt well.
  • Rebuild Wizard: let's you see all projects in a directory tree and build them all in sequence
  • Clip History Viewer: last 9 text entries of the clipboard (if tracking is enabled)
  • VCL Hierarchy: a tree of all currently installed components, including third party ones
  • DB Form Wizard (likely the most usefull!): like the database wizard of the early days, but based on dbExpress. Placed SQLConnection, SQLDataset, DatasetProvider, CleintDataSet, and a series of DBEdits in a form, all at once.
  • No ".net safe" warnings: disables the safe type, safe cast, safe code warnings of the current project. Handly when updating very old projects.
  • Bookmark list (nice): show in a dockable pane the list of bookmarks in the current file. A long due feature of the IDE.
  • Palette Info: shows in the message pane the name of the elemetns of the Tool Palette (list of components and groups). Interesting only for exploring the internals.
  • Add to project manager for .ini: Add a project manager menu items for INI files (useless)
  • ShowDebug Inspector: opens the Debug Inspector (a run time object inspector) for the IDE, letting you view the internals (forms, component, etc) and change some of them. The same component is avaialble for use in your own applications.
  • Publish Project: produced an HTML-ized version of the source code. Very crappy, you get "chinese" due to Unicode errors... will work on it.

Older versions and information

Download Instructions

Download (and freely pass around) the file CanToolsW6.bpl (64Kb), and install it in Delphi (with the command Component | Install Package).

For Delphi 7 download (and freely pass around) the file CanToolsW7.bpl (65Kb), and install it in Delphi (with the command Component | Install Package).

UPDATE: If you've installed the Update 1 of Delphi 7 try usign this recompiled version of the package: CanToolsW71.bpl (65Kb), and install it in Delphi as above.


The CanTools Wizards is a collection of Delphi wizards installed either in its own menu or in a submenu of the tools menu (there is an option you can use to change this setting, stored in the registry). Some of these wizards are discussed in my books, others are personal tools built over the years. If you have ideas or suggestions (or want to donate a wizard or write one) let me know.

This is a very short description of the currently available tools.

List Wizard

Described in Mastering Delphi, this wizard streamlines the development of very similar list-based classes each with its own type of objects. It does a search replace operation on a file like the demo list.ttt (2Kb).

OOP Form Wizard

Described in Mastering Delphi, this wizard allows you to hide the published components of a form, making your form more object-oriented and providing a much better encapsulation mechanism. Start it when a form is active, and notice the OnCreate event handler code generated. part of the code, though, goes into the unit initialization.

Object Inspector Font

Allows you to change the font of the Object Inspector (particularly useful of presentations). The setting is not persistent (yet). Another option of the setting allows you to toggle an internal feature of the OI to display the font names (in the drop down combo) using the font itself.

Rebuild Wizard

Allows you to rebuild all of the Delphi projects in a given subfolder, after loading each of them in sequence in the IDE. You can use it also to grab a series of projects (like those in a book) and open the ones you choose, by clicking on the list. You can also automatically compile only a given project. Or start a (slow) multi-project-build: you'll see the compiler results dialog and have to press a button to proceed only if the corresponding environment option is set. If not, though, you want see the errors, as the compiler messages are superceded at every compilation.

Clip History Viewer

Keeps track of a large number of text you've copied to the clipboard. The memo shows the last 100 "clipped" lines. Editing the memo (and pressing save) what you type gets stored in the clipboard history. If you keep Delphi open, the clipboard will get text also form other programs (but text only, of course). I've seen occasional clipaboard-related error messages, but nothing I can track.

VCL Hierarchy

Shows the (almost) complete hierarchy of the VCL, including the third-party components you've installed, and allows you to search one and see many details (base and subclasses, published properties, and so on). Pressing the button regenerates both the list and the tree (in sequence, hence the two runs of the progress bar). The list of classes is generated using same predefined core classes (some are still missing, feel free to send suggestions) and then adding each of the components of the installed packages (Delphi's, yours, third parties...) and also the classes of all the published properties having a class type. However, classes used also as public properties are not included (and it is quite hard to do that without parsing the source code).

The form is kept in memory when it is re-activated, so the tree and list will be there, and you can simply typein the class you're looking for and see its position in the tree and its details. A lot of other information can be added, let me know what you'd like to see.