New Features in ModelMaker UML Explorer 1.10
General features
- The Print Dialog allows adjusting the printing scheme.
- Classifier names will appear centered, the symbol width is possibly slightly increased to allow this.
- The Zoom and Overview window appears as child of the diagram editor. The diagram editor status bar contains a button to show/hide it.
Delphi for .NET syntax support
- Delphi for .NET syntax support is controlled by an option on the Environment Options General tab.
- operator added as a new method kind for methods.
- unsafe added as a new method and procedure directive.
- experimental added as a new compiler Hint directive.
- static added as a new class method directive.
- sealed and abstract class directive support.
- Records can support interfaces and support default, private and public visibilities.
- Parser recognizes class helper syntax. Class helpers are available as a new classifier type.
- Visibilities extended with strict private and strict protected. Visibility selectors throughout the GUI are dynamically updated according to the selected language settings.
- Class (static) properties are recognized.
- Class var and var support.
- Constants may be declared inside classes.
- Identifier Escape character & is supported to allow using reserved words as identifiers. For example: &Begin. Check Using the Identifier Escape Character below.
- add / remove syntax supported for multi cast event properties.
- Indexers are supported (default array properties). Non-unique members names and overloaded access methods are allowed for indexers.
- Attributes are skipped similar to comments and compiler directives.
- Nested types are not (yet) supported.
Generic syntax extensions, irrespective of the language settings
- ModelMaker UML Explorer supports qualified names in most places, irrespective of the setting of the Delphi .NET syntax option. For example: Unit names can contain dots to define name spaces and class names can be qualified. Using dots in unit names has no restrictions. Note: Classes are compared on their name including any qualifiers. Therefore, "MMTools.TSample" is not identical to "TSample", even if class TSample is part of unit MMTools. In diagrams it is assumed that a property of type "MMTools.TSample" is not defining an association to a class symbol linked to "TSample".
- Dotted names and aliases are supported in uses clauses. For example uses System.Drawing as SysDraw;
- Units can have dotted names to define name spaces.
- Importer supports Inplace defined procedural types inside classes (as fields type or record field type). For example: type
TSample = class(TObject)
FCallback1: procedure;
FCallback2: procedure (I: Integer) of object;
FEvents: record
Pre: function (var Cancel: Boolean): Integer of object;
Post: procedure of object;
end;
end;
Using the Identifier Escape Character
ModelMaker UML Explorer supports using the Delphi .NET identifier escape character & by treating the escape character as part of the identifier. Entities are compared on their name including the escape character. This may lead to confusion in rare cases in implementation code as qualified names do not require the identifier escape. System.object is perfectly OK for the Delphi compiler, just as System.&object. And although the Delphi compiler simply sees these as the same class, ModelMaker UML Explorer does not. Watch out for method implementation declarations like:
TSample = class(TObject)
procedure &Begin;
end;
procedure TSample.Begin;
begin
end;
In the above example ModelMaker UML Explorer will not match the TSample.Begin with the escaped method declaration &Begin; To avoid this, use the identifier escape in the method implementation too:
begin
end;
Solved problems
- Importing a unit with the code visualization tool that contains duplicate class definitions (though using conditional defines) would cause an "Container Error: 0" error message. Solved
- The customization dialog for the Alignment Toolbar would show some component names instead of normal captions. Solved.

