Object Inspection @ Runtime

  • Navigate your application's components to debug
  • See the effect of changes in your live application
  • Debug settings and data issues
  • Author your own Inspectors



Marshal provides three options for implementation:

  1. Pure Code using an event handler (minimal changes)
  2. Marshal Button component (Button as visual component)
  3. App Inspector component (Marshal automatically starts with the application)

Pure Code

Implementing Marshal in pure code provides you with complete control for layout and build inclusion. Pure code does not require the design time packages in the IDE. This method requires no changes to the DFM file. The changes to the PAS files are:

  1. Add an entry to the implementation uses clause for the Marshal API class (ex. VCL.SERTTK.Marshal).
  2. Modify an event handler to call TSERTTKMarshalAPI.ShowMarshal.

**Sample is provided in the procedure MarshalCode in the samples below.

Use this option if your goals are to:

  • Control build inclusion / exclusion using conditional compilation with IFDEF statements.
  • Not introduce any new controls to existing forms
  • Not require design time components in the IDE 
  • Control the search path at the project level

Marshal Options are allowed using an overloaded constructor to control re-opening inspectors and form width and height.  Sample is provided in the procedure MarshalCodeWithOptions in the samples below.

VCL sample Marshal FNC Chart Demo - pure code VCL, FMX sample Marshal FNC Chart Demo - pure code FMX

Marshal Button Component

The button component is provided for quick implementation when you have design space on a form where you can easily add a button.

Use this option when:

  • Design space allows you to add the button (button can be set to visible = false using conditional compilation)

App Inspector Component

The app inspector component is a non-visual component for quick implementation when you want Marshal to show automatically every time you start your application.

Use this option when:

  • You would like to show Marshal on each startup
  • Prefer to re-open inspectors each time

Web Core Source Code

For web core you need to add the source path to the project options.

  1. Locate the source path from Caddie by clicking on the Directories menu item and selecting RTTK source.
    ex.  C:\Users\%USERNAME%\AppData\Roaming\RTTK\Source\src 
  2. Right click a Web Core project and select project options.  Select the options under TMS WEB
  3. Edit "TMS WEB Source paths" and add the directory found in step 1

Marshal Supported Platforms













11.X Yes Yes Yes Yes Yes Yes WebCore V2.1
10.4 Yes Yes Yes Yes Yes Yes WebCore V2.1
10.3 Yes Yes Yes Yes Yes --
10.2 Yes Yes Yes Yes Yes --
10.1 Yes Yes Yes Yes Yes --
10.0 Yes Yes Yes Yes Yes --

TMS FNC UI Pack is a separate purchase.

Read more: Marshal Supported Platforms

Marshal Version History and Release Notes


Fix - Rediscover data modules exited early; new data modules were not show in the structure view.
Fix - Splitter mis aligned in VCL for view change detail.
Fix - Docked form could cause discovery failure
Compiled under 11.3 & package version updated.


New object model to track references outside of the TreeView. (Units have been removed and class names changed)
Add: Supports TMS Web Core for web apps - initial release
Breaking change: SERTTK.PluginTypes consolidation of types
Behavior change: Restored inspectors are not initialized till switched to (saves time on open)

Review Marshal API 2023 Updates for breaking changes

Read more: Marshal Version History and Release Notes