Change Log


  • Fix hotkeys in surround editor
  • Catch exception in ReadToken
  • Fix setup for Delphi 12


  • add support for Delphi 12 Athens
  • speed up search box drop down
  • strip hotkeys in Surround and Snippets editors


  • Fix alignment glitch in Source Indexer Scan Options
  • Fix System Error when closing a Source Indexer tab
  • Fix some context menu items in Source Indexer not working
  • Fix tab order in Procedure editor
  • Hide selection in parameter edit when disabled
  • Command ModelMaker Code Explorer now focuses explorer window
  • Paste virtual methods into a derived class now makes them override even if source is in a different unit
  • New indent option in Surround Templates to place compiler directives on column 1 (see Delphi’s Object Pascal Style Guide)
  • New option to move the cursor over the default button of MMX modal forms


  • Catch AV on MMX showing when layout changes
  • Catch errors in Unit Dependency Analyzer Refresh
  • Unit Dependency Analyzer takes code from edit buffer if available
  • Execute Source Indexer if AutoScan is enabled
  • Fix High DPI problem in Source Indexer
  • Nested classes are no longer stored in Known Modules Cache causing strange units added to uses clause.
  • In Use Unit, if only one file matches the filter, it is selected
  • MMX forms follow the IDE when it has moved to another monitor


  • Fix breaking interface change causing error in Delphi 11 and 11.1
  • Group class properties like class methods
  • Fix cut off text in Extract Method dialog
  • Make IntelliReplace Rename dialog a bit wider to cope with new font size
  • Update VirtualTreeView
  • Support for Delphi 11.3


  • Class Editor opens faster with large numbers of known classes and interfaces
  • Action List ShortCut Wizard now shows controls name instead of action lists name
  • An empty Related Classes form is now scaled correctly
  • Align Code form is now scaled correctly
  • Align Code form allows to align by a Comma
  • Correct MMX icon in Views menu
  • Use Unit now shows all found units even when no project is active
  • There is also a fix for a display issue on the tip-of-the-day panel under RDP, which I could not verify yet.


  • Uses Clause Groups Default gets some decent initial settings when empty
  • Record operators support Initialize, Finalize and Assign
    (Note: Editing an Assign operator will give a warning about the attributed parameter. This will be taken care of in a future version)
  • Fix: parsing errors on certain initialization sections leading to navigation failure
  • Explorer tool tips got a bit annoying lately. Now the display logic takes care of that.
  • Tab order in Use Unit dialog was a bit off.
  • Docked MMX tab is a bit wider now
  • Setup overrides even newer versions of the DLLs allowing a simpler downgrade


  • Source Indexer used wrong font color in dark mode
  • Regression in Unit Dependency Analyzer
  • Fix missing wrap of info tip in Explorer details
  • Fix switching “Enable Keybindings” leads to access violation
  • Honor disabled key bindings
  • Accept anonymous methods in initialization and finalization section
  • Detect initialization and finalization section as navigation targets


  • option to disable the new conditional parsing
  • when MMX parses code it implicit defines MMX for use in IFxxx directives
  • conditions used by the MMX parser can be set in the MMX project options
  • code items from include files were shown in the current module breaking navigation
  • include now files appear in the module section and open on double-click
  • better performance when scanning loaded packages
  • new class constructor/destructor get no inherited anymore
  • class destructor has static binding instead of override
  • class constructor/destructor are initialized with strict private visibility
  • selecting a class constructor/destructor matches now the correct implementation


  • parser supports conditional defines
  • dialogs can be closed with <Ctrl>-<Enter>
  • String Conversion settings allow to select Local / Module Implementation
  • option to use a simple inherited, omitting the method name and parameters
  • persist Code Alignment settings between sessions
  • Uses Clause Grouping has a default for new projects
  • try-finally wizard works with inline var
  • local variables can alternatively be declared as inline var or inline const
  • Module String Wizard allows to filter by string content
  • fix: generic class parent was displayed wrong when defined in other unit
  • fix: Show Related Classes missed to find generic interfaces
  • fix: access violation when there is no active project
  • fix: intermittent access violation parsing code
  • fix: could not find generic parent type
  • fix: Resourcestring Wizard uses existing commented sections
  • fix: language combobox in Parsing options was empty
  • fix: several text cut-offs