New features in ModelMaker 10.20 / 10.21

ModelMaker 10.20 released

ModelMaker Tools released ModelMaker 10.20 on September 15 th 2009.

Main new Features

and lots more...

Features as Mind Map Features as Mind Map...

MM 10.21 bug fix update

Delphi 2010 syntax support and IDE integration

  • New Pascal Delphi 2010 Win32 language mode on Project Options | General tab.
  • Support for the delayed option in external procedures.
  • Support for custom attributes in parser and editor.
  • Attributes wizard available for classes and members (multiple selection in explorer). Uses attribute presets, organized similar to templates.
  • Delphi 2010 IDE Integration add-in. Available in Pascal and C# editions.

New Syntax Editors

  • The Syntax highlighting editor as used in Implementation view, Module code view and some code related option tabs has been replaced, adding a wealth of features:
  • Show Tabs (enabled by default), Show spaces (disabled).
  • Brace matching for ( { [ ] } )
  • Cursor beyond end-of-line
  • Highlighting of the active line (different background) and a cursor-indicator > showing the active line in the gutter.
  • Whole words search in Search and Replace
  • Much improved Editor templates expanding on Ctrl+J, the templates are much easier to edit. Also, if necessary a filtered drop down list appears to select a template.
  • The settings to control the new features are located on tab Environment Options | Editor and its sub-pages Highlighting and Templates.
  • The Difference View also uses this component and has new styling options on Environment | Difference.


  • The Diagram Explorer view (optionally) displays Diagram thumbnails. Display of thumbnails and thumbnail size can be adjusted on Environment Options | Diagrams | Appearance & Printing.
  • Diagram Editor command Link to diagram creates a navigation hyperlink to a diagram for the focused symbol. The symbol's text is optionally linked to the diagram name. The command is a shortcut for creating a hyperlink manually via the Hyperlinks tab in the symbol's dialog.
  • Email Diagram - creates an email and attaches an image of the current diagram. Uses the default mail application for address selection etc. The image file format defaults to *.png and can be adjusted on Environment Options | Diagrams | Appearance and Printing.
  • Hyperlinks to external files show the file type image.
  • The Diagram Editor navigation history has a "Recent diagrams" drop down list allowing to navigate through the previously visited diagrams.
  • The Diagram Editor Navigation Context window is made "Auto Hide" - deactivating the Context window automatically hides it.
  • The Diagram Explorer view allows ordering diagrams by
    • Diagram name.
    • Diagram type and diagram name.
    • Custom order - use drag and drop to rearrange diagrams.
    • Time stamp - diagrams are ordered in the order they were created.
  • The dialog that allows selecting a hyperlink to a diagram displays the diagrams organized by folder structure. A Diagram Search Edit filters the displayed diagrams to help locating diagrams in large folder structures. The "New..." button now creates new diagrams in the folder selected in the dialog.

Mind Map Diagrams

  • Mind Map symbols can show an Icon. Icons are selected from a build-in list of presets like: Tick, Dismiss, Todo and Colored numbers.
  • Double click in a Mind Map diagram adds a branch to the focused Mind Map symbol at the double click position.
  • New Auto Mind Map style Colors on Black - similar to Bright Colors, with a black background.
  • New Auto Mind Map style Compact Gray scale - gray scale colors but without borders and thin lines.
  • New Quick Access Tool in Mind Map nodes to create a child branch.
  • Alt+Click on a symbol in a Mind Map diagram selects the Mind Map node and its branches.
  • Alt+Drag on a Mind Map diagram moves a symbol and its branches.
  • Layout branches command re-layouts the focused symbol's branch nodes.
  • The Custom Mind Map style editor supports adjusting border style, diagram background color and font color. Note: Line style and shadow color are currently unused.

Members view

  • Class Info bar optionally displays descendants and siblings (classes descending from the same ancestor). The number of rows in the class info bar is adjustable. Check Members view pop up | Properties | Members view for options.

Code Generation and Import

  • Generation of the default ancestor for classes is configurable via tab Project Options | Code Generation.
    • Pascal: the default ancestor TObject may be suppressed by disabling option "Emit Default Ancestor". Default this is enabled to be compatible with previous versions.
    • C#: the default ancestor may be emitted as "System.Object", "object" or may be suppressed. Default this is set to emit as System.Object to be compatible with previous versions.
    If you change the default, and want it applied to other and new models, click the "Make default" button on the Project Options dialog.
  • C# code generation: optionally an empty line is emitted between property access methods. Controlled on Project Options | Code Generation tab.
  • C# code generation: optionally a space is emitted before the class heritage colon. Controlled on Project Options | Code Generation | Space before heritage.
    class Sample : object { } // space before heritage
    class Sample: object { } // no space before heritage
  • C#: an empty line is emitted before fields if they contain documentation or attributes to conform to StyleCop metrics.
  • C# Code Import: when importing nested classes ModelMaker qualifies the nested class names to avoid collisions with equally named (nested) classes. Optionally you may now qualify nested classes with just the containing class name rather than the fully qualified name including name spaces. Controlled via C# Project Options | Code Import | Fully qualified nested classes. Default this is enabled to be compatible with previous versions. If you change the default, and want it applied to other and new models, click the "Make default" button on the Project Options dialog.

IDE Integration

  • New command: Model Search - activates the ModelMaker Model Search bar with the word at IDE editor cursor position. Available for Delphi 4 - Delphi 2009 IDEs and Visual Studio 2003-2008.

Modules view

  • Import Source File when invoked from the Modules view pop up menu, presets the import dialog with the directory of to the selected module.
  • Pascal: Modules view has a new ordering mode Order by namespace (alpha sorted). This is similar to Order by namespace, but additionally mixes alpha sorted modules and namespaces (folders) at the same level rather than first displaying namespaces (as folders) followed by modules (as nodes)
  • Pascal: The Use Unit dialog optionally displays the file path when modules are displayed in a single column.
  • Pascal: Format uses clause - reformats the uses clause at cursor position according to the margin settings. Shortcut Ctrl+Alt+U

Implementation view

  • Extract Method and other refactoring commands available on the Implementation view toolbar. Use the "Customize..." command from the toolbar pop up to expose them.

Generic changes

  • Invoke "Model Search" command has been added to Classes view, Members view, Modules view and the Diagram Editor. The search bar is invoked with the focused entity's name. Shortcut: Ctrl+Shift+F2
  • ModelMaker Dialogs use clear type font Tahoma


  • State transitions attributes like event-label and guard have been exposed through the diagram explorer. Check IMMStateTransition in MMDiagramApi.pas

Solved problems

  • Reconnecting documentation links to association was impossible in some cases. Solved.
  • Implicit links from classes to their state diagram would not appear in the "Find references on Diagrams" results for that class. Solved.
  • Diagram Editor Time-Shift tools would in some cases not move association shape nodes, distorting the line paths. Solved.
  • Jumping from ModelMaker to the Delphi IDE would in some cases not set focus to the IDE editor. Solved.
  • Pascal: In some cases the method editor local var list remained empty when activating the implementation view. Solved.
  • Pascal: property accessors using qualified names would in some cases cause the importer to fail. Solved.
  • Pascal: the code generator would emit wrong code for a method with constrained generic parameters. Solved.

ModelMaker 10.21 bug fix update - changes

  • The "Bring to foreground mode" for the Delphi IDE integration add-ins is adjustable with the IDE integration options dialog. This allows fine tuning the MM / Delphi interaction.
  • Method Implementation editor Hyper jump (Ctrl+H) also navigates to a class if the cursor is at a class name.
  • Environment options | Editor takes "Tab width" and "Use tabs" settings from Project options | Code generation | Code layout.
  • C#: non-user owned sections in the Implementation editor have a different background color. Adjustable via Environment Options | Editors | Syntax Highlighting
  • C#: the Method dialog allows adding code snippets to the method implementation. Select a predefined snippet or add you own snippets via the drop down list.

ModelMaker 10.21 fixed bugs

  • Method Implementation and Module Code editors would in some cases not commit changes to the model. Fixed.
  • Env Options | Editors | Tab Width would remain at 2. Fixed.

MM VS IDE integration pack v1.71 fixed bugs

  • Add to Model would invoke Model Search. Fixed.
  • In some cases "Add Files to model" and "Convert Project to model" would not do anything on Vista / Win7. Fixed.