Marshal
Your goal during inspection is to spot defects and pinpoint enhancements. Save yourself the recompile and verify the result realtime. Be more productive by using Marshal to:
- Inspect and modify component settings at runtime
- Verify changes without a recompile
- Capture before and after screenshots of changes with a path to the modified object
- Add bookmarks to annotate changes to be made offline or at a later date
- Record changes in a session for offline review with Caddie
- Inspect without a debugger
- Marshal's tree navigation is similar to the IDE
Marshal provides navigation for the forms, datamodules and components of your application. Marshal understands the internals of a Delphi application starting with the TApplication object, identifying forms and datamodules and the components on each form. Marshal is a dedicated form so that you can use a side by side view. Marshal provides a workspace for Inspectors assigned by executing transforms against objects active in your application. Inspectors are views / visualizations / tools that understand objects by class type.
Marshal provides shortcuts to help navigate / inspect your application. Right clicking on a form will give you the option GoTo active. This will take you to the active control of the form. A drop down filter is available if you know the controls name.
Marshal Navigation
Release Notes
Inspectors - visualizers / support tools
Object Plus provides access to component properties and events at runtime
Application Inspector Essential results based on RTL
Dataset Grid Grid view of an TDataset
Query SQL Adhoc query for TFDConnection
Options
- Details
- Category: Marshal
Marshal source code is delivered via Caddie. Follow the video here Install and build video
Download Marshal Updates
In Caddie click on the RTTK menu and select Updates.
If a new version is available, the download button will be active. Click on Download then Update. 
IDE Install
The screen above should detect the version(s) of the IDE installed on your machine. Place a check by the platform that you want to build for and update the source path.
- Design packages are only available for 32-bit and this is because Rad Studio is a 32-bit application. Placing a check beside either VCL or FMX will register design time components for all the supported platforms.
Source code location
Update will replace the local copy of source code, stored in %AppData%\RTTK\Source\src.
Under the Directories menu there is a menu item RTTK Source which will open this directory.
Manual Build
To manually build the source code, locate your project group from the list below. Build in the following order, ensure you build the runtime before the design time:
- FMXSERTTKDXE21.dproj
- FMXSERTTKDXE21DT.dproj
- VCLSERTTKDXE21.dproj
- VCLSERTTKDXE21DT.dproj
Project Group files are provided by IDE version:
| 11.x | RTTK_DX22.groupproj |
| 10.4 | RTTK_DX21.groupproj |
| 10.3 | RTTK_DX20.groupproj |
| 10.2 | RTTK_DX19.groupproj |
| 10.1 | RTTK_DX18.groupproj |
| 10.0 | RTTK_DX17.groupproj |
- Details
- Category: Marshal
Marshal API has some breaking changes starting with 2023.3.28. Units have been renamed, Marshal Options are now available via a global variable, and plugins require one less reference. Read on to see the changes.
The replacements can be seen demonstrated in this commit on GitHub.
Unit Name Mapping
These units were renamed as part of refactoring.
(replace ZZZ with your framework, FMX, VCL or WebLib)
MarshalAPI : ZZZ.SE.RTTK.Marshal is now ZZZ.SERTTK.Marshal
MarshalOptions: ZZZ.SERTTK.MarshalCV is now ZZZ.SERTTK.MarshalTypes
Design Components : ZZZ.SE.RTTK.DT.Marshal is now ZZZ.SERTTK.DT.Marshal
Marshal Options
This release allows access to a global options instance MarshalMV.MarshalOptions , located in ZZZ.SERTTK.MarshalTypes. You no longer have to create an instance, just use the global instance to update the framework.
Plugin Framework changes
ZZZ.SERTTK.Registry has been consolidated into ZZZ.SERTTK.PluginTypes. Just remove the reference to the Registry class.
References to RepoComponent need to update to RepoItem.
Logger
ZZZ.SE.Logger changed to ZZZ.SEFNC.Logger
- Details
- Category: Marshal
Marshal provides three options for implementation:
- Pure Code using an event handler (minimal changes)
- Marshal Button component (Button as visual component)
- App Inspector component (Marshal automatically starts with the application)
- Details
- Category: Marshal
Marshal was designed to be implemented with one line of code and an entry in the implementation uses statement. Below is a code sample showing the changes with conditional compile statements to only show in a debug build. More options are covered in Marshal Implementation Options
implementation {$R *.dfm} uses {$IFDEF DEBUG} Vcl.SERTTK.Marshal, {$ENDIF} ; procedure TfrmRTTKVCL.btnMarshalClick(Sender: TObject); begin {$IFDEF DEBUG} TSERTTKMarshalAPI.ShowMarshal; {$ENDIF} end;
TSERTTKMarshalAPI unit name changed in version 2023.03.28, It is now VCL.SERTTK.Marshal
TSERTTKWorker.ShowMarshal was deprecated in release 2022.09.25 replace with TSERTTKMarshalAPI.ShowMarshal
- Details
- Category: Marshal
VCL |
FMX |
WebCore |
|||||
|---|---|---|---|---|---|---|---|
Delphi |
Win32 |
Win64 |
Win32 |
Win64 |
Android |
OSX |
Web |
| 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.
Marshal Supported Platforms
VCL |
FMX |
WebCore |
|||||
|---|---|---|---|---|---|---|---|
Delphi |
Win32 |
Win64 |
Win32 |
Win64 |
Android |
OSX |
Web |
| 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.
Marshal Version History and Release Notes
2023.06.##
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.
2023.03.28
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
