What's New
Version 4.31 (Jan-2025)
- Fixed: Zooming in not working correctly when using diagram in high DPI. Ticket #23313.
Version 4.30 (Nov-2023)
- New: Delphi 12 Support.
Version 4.29 (Fev-2023)
Fixed: Zoom in and zoom out now keeping the clicked point under mouse cursor. Ticket #19894.
Fixed: Changing the registered diagram control caption was not updating the hint text in diagram toolbar control. Ticket #20130.
Fixed: Page lines drawn wrongly when screen DPI was different than 96 (not 100% scaling). Ticket #20155.
Version 4.28 (Dec-2022)
- Fixed: AddArc not working correctly in Direct2D when using elliptical arcs.
Version 4.27 (Apr-2022)
- Fixed: Diagram objects painted horizontally mirrored when graphic lib was set to GDI+.
Version 4.26 (Mar-2022)
- Fixed: Font being draw with wrong size, after loading a diagram from file/stream in High DPI.
Version 4.25 (Sep-2021)
New: Delphi 11 / RAD Studio 11 support.
Fixed: Error when exporting too big diagrams to WMF format.
Version 4.24 (Dec-2020)
New: TatDiagram.ExportAsPng method to export diagram as PNG image.
Improved: Better block snap grid placement when inserting a new block.
Fixed: TPolyDiagramLine not working correclty with linkpoints flagged as SourceOnly/TargetOnly.
Fixed: Access Violation when using a printer with more than 256 paper sizes.
Version 4.23 (Aug-2020)
- Improved: High DPI improvements: TDiagramToolbar has correct height and button sizes. Ruler has now correct division lines.
Version 4.22 (Jun-2020)
New: Support for RAD Studio 10.4 Sydney.
Improved: Better display of alternate line dashes in Direct2D rendering.
Fixed: Sporadic Access Violation in TUMLBlock.
Version 4.21 (Feb-2020)
Fixed: Node collapsing not correctly working for grouped blocks.
Fixed: Some blocks not appearing when exporting to bitmap in some situations.
Version 4.20 (Jan-2020)
- Fixed: TatDiagram.MoveBlocks method behaving wrongly when moving group blocks and parameter AOnlySelected is false.
Version 4.19 (Nov-2019)
New: Experimental (beta) support for High DPI monitors. For now only the TatDiagram component itself is supposed to the HDPI compatible. The full editor (provided by TDiagramEditor component) is not yet HDPI compatible.
Fixed: Access Violation when clearing a diagram containing grouped blocks. The "clearing" operation happens actually in several situations, like undo, adding block to library, closing a diagram, etc.. The error didn't happen in every diagram with grouped blocks, usually only when groups had many diagram lines connected to each others.
Version 4.18 (Jul-2019)
Improved: TDiagramEditor.DialogMode allows displaying the diagram editor window as non-modal.
Fixed: Memory leak when opening the diagram editor with existing custom blocks in user library.
Version 4.17 (Dec-2018)
New: Support for Delphi/C++Builder 10.3 Rio.
New: TPictureMore.pmStretchProportional stretches the picture to the whole block size but still keeps original image ratio.
New: PasteOffsetX and PasteOffsetY properties controls where a new pasted diagram object will be positioned compared to the original copied one.
Improved: PageLines now follows FixedPageWidth, FixedPageHeight, FixedPageCols and FixedPageRows, if they are defined.
Fixed: UML Blocks showing wrong margins around title section depending on font size.
Fixed: Sporadic Access Violation when destroying diagram with layers.
Version 4.16 (Jul-2018)
- New: TArrowShape.ShowGuide property allows showing "guides" (extension/dimension lines) at the end of lines.
New: CenterTextCellOffset property allows controlling the center text cell position relative to the line center.
New: Properties FixedPageWidth, FixedPageHeight, FixedPageCols and FixedPageRows allows setting a fixed size for the diagram, in pixels.
New: TExportSize esPage allows exporting the diagram to a bitmap in the full size - the whole diagram will be exported with its exact size. Mostly used with FixedPage* properties.
Fixed: Clipboard issues in Windows 10.
Version 4.15 (Mar-2018)
Fixed: Round rectangles (shaped based on bsSquareShape) not showing correctly in diagram navigator.
Fixed: Showing a modal form during OnDblClick would cause diagram to enter select mode even with mouse button unpressed.
Fixed: LiveDiagram was not restoring visual settings of EndBlock after an execution.
Version 4.14 (Jul-2017)
Improved: Changed order of handle detection - handles at the end of Handles collection will have higher priority on handle selection.
Fixed: Wrong preview/print for landscape more (regression).
Fixed: TDiagramButtons control displaying all categories regardless of the value of DiagramCategories property.
Previous Versions
Version 4.13 (Mar-2017)
- New: RAD Studio 10.2 Tokyo Support.
Version 4.12 (Mar-2017)
Fixed: RoundRect blocks displaying differently when using GDI or GDIPlus/Direct2D.
Fixed: Exporting to bitmap not including diagram background image when using Direct2D.
Version 4.11 (Sep-2016)
- Fixed: Anchored links not being moved together with blocks.
Version 4.10 (Aug-2016)
New: TCustomDiagramBlock.CornerRadius property for fine-tuning of rounded corner when using rounded-square shape.
Improved: Improved performance when clearing or deleting many diagram objects at once.
Fixed: Preview bitmap for landscape orientation.
Fixed: Moving groups that have lines anchored would cause misplacement of group members.
Fixed: Diagram toolbar with wrong height at design-time.
Version 4.9.1 (Aug-2016)
- Fixed: C++ Builder 2007 headers not being generated correctly. Breaking change.
Version 4.9 (Apr-2016)
- New: Support for Delphi/C++Builder 10.1 Berlin.
Version 4.8.5 (Nov-2015)
Fixed: Getting default printer failed with Unicode characters in Delphi 2009.
Fixed: OnModified event not being fired when blocks were moved using arrow keys.
Version 4.8.4 (Sep-2015)
- New: RAD Studio 10 Seattle support.
Version 4.8.3 (Aug-2015)
New: TDiagramControl.SelectableTextCells allows taking text cells into consideration when selecting blocks and scrolling the diagram.
New: TatDiagram.OnOpenEditor event gives opportunity to execute code right before text editor is displayed (when editing text in diagram object).
Fixed: Diagram navigator cropping right side of selection rectangle in some situations.
Fixed: Using REMOVEGDIPLUS directive was not compiling.
Fixed: Texture brush not working when using Direct2D graphic lib.
Version 4.8.2 (Apr-2015)
New: Delphi/C++Builder XE8 support.
Improved: Diagram buttons (objects panel) comes with first item selected, instead of last one.
Fixed: Live Diagram blocks were not appearing in toolbar at design-time.
Version 4.8.1 (Mar-2015)
- Fixed: Error with C++ hpp files for FlowchartBlocks (and other blocks) generated incorrectly.
Version 4.8 (Fev-2015)
- New: Package changes now allow use of runtime packages with 64-bit applications. It's a breaking change.
Version 4.7 (Sep-2014)
New: RAD Studio XE7 support.
New: Clicking navigator in a position now automatically scrolls the diagram to the respective position.
Fixed: Conflict between TeeChart and TMS Diagram when using C++ Builder.
Version 4.6.1 (May-2014)
New: RAD Studio XE6 support.
Fixed: Links were missing when using library controls and ungrouping them.
Fixed: Navigator not being painted when diagram had no scrooll bars in Direct2D.
Fixed: Wrong text alignment when using TVertAlign.vaBottom or TAlignment.taRightJustify.
Version 4.6 (Mar-2014)
New: TDiagramNavigator control provides an overview and easy navigation of the whole diagram.
New: TDiagramEditor.ShowNavigator and NavigatorVisible properties allows full control of navigator visibility in the built-in diagram editor dialog.
New: TForceLayout.ApplyNodesOnError allows the layout to be applied to diagram even if errors occur while calculating the new layout.
Version 4.5 (Oct-2013)
New: RAD Studio XE5 support.
New: Keep lines vertical/horizontal-only while resizing by keeping Ctrl key pressed.
New: OnlyFocused property in diagram actions cut, copy, paste and undo, allows such actions to not perform is diagram control is not focused.
Fixed: List index out of bounds when no blocks are registered in diagram editor.
Fixed: "Control has no parent window" error when loading blocks from library manager.
Version 4.4 (May-2013)
New: Diagram auto-layout using force algorithm.
New: RAD Studio XE4 support (version 4.3.1).
Version 4.3 (Sep-2012)
New: RAD Studio XE3 support.
New: TTextCell.ReadOnly property.
Improved: Better handling of texts in automatic icon creation in library dialog.
Improved: Property StringData now being saved in TGroupBlock and TLineJoin blocks.
Fixed: Access Violation when a showmessage is displayed in OnInsertDControl event.
Fixed: Block position getting rounded values in very specific situations.
Fixed: Issue with gradient in some UML blocks.
Fixed: Issue with resizing using left/top/right/bottom handles and keeping aspect ratio.
Fixed: Collapsable nodes not being hidden when an object is behind another object.
Fixed: Error when getting default printer when using Diagram Studio under Citrix.
Version 4.2 (Apr-2012)
New: Support for 64-bit applications.
New: Automatic scroll when selecting controls and mouse cursor is positioned outside diagram boundaries.
New: TDiagramRuler.Offset property allows you to specify an initial number for the ruler different from zero.
New: TDiagramRuler.Inverse property allows you to set the initial point of the ruler at the right (instead of left) or bottom (instead of top).
New: Support for collation and duplex in diagram printing (TDiagramPrintSettings).
Improved: New TGroupBlock BeginUpdateMembers and EndUpdateMembers allow faster member including in group blocks.
Fixed: Isse when print previewing diagram in landscape orientation.
Fixed: issue with print preview in Delphi/C++Builder XE2.
Fixed: Issue with select cursor in some situations where line pen width changes.
Fixed: Rare issue with block position getting rounded values when not needed.
Fixed: Sporadic Access Violation when a showmessage is displayed in OnInsertDControl event.
Version 4.1 (Sep-2011)
New: RAD Studio XE2 support.
Fixed: Minor issue with hints when Application.HintShowPause is different than zero.
Fixed: Issue with C++Builder XE installation.
Fixed: Minor issue with TDiagramButtons.BevelFlat property.
Fixed: Minor issue with polylines and export to WMF.
Fixed: Issue with text cell autoframe not working properly with different vertical alignments.
Fixed: TWinControlBlock not working properly with Direct2D.
Fixed: Printing in Direct2D (forced to use GDI+).
Fixed: Icons in palette toolbar for 3rd party blocks not showing when using runtime packages.
Fixed: Issue with RequiredConnections and OnAcceptLink event.
Fixed: Block palette not updating when a library is deleted.
Version 4.0.4 (Dec-2010)
- Fixed: Error when opening diagram design-time editor in Delphi 7 and previous versions.
Version 4.0.3 (Dec-2010)
New: Context menu for layer assignment in diagram objects.
Improved: Properties made public to allow creating descendants for TDgrLibraryFiler.
Fixed: Painting issue moving blocks with DragStyle = dsOutline.
Fixed: Access Violation selecting a PNG file in Open Picture dialog.
Fixed: TextCell not resizing proportionally to the length of the text.
Fixed: Issue calculating handles of arcs into a group block after moving, rotating or resizing.
Fixed: Text cell bounds of some diagram blocks to avoid text going outside the shape.
Fixed: Issue with block clipping (Direct2D).
Fixed: Issues exporting/printing a diagram using Direct2D.
Fixed: Issue drawing UMLStateBlock and FlowTerminalBlock with height larger than width.
Fixed: Text bounds calculated incorrectly when drawing CellFrame with AutoFrame=true (Direct2D).
Fixed: Error drawing linkpoints using GDI library.
Fixed: Issue with GDI+ using Diagram inside a DLL.
Version 4.0.2 (Oct-2010)
New: Properties TGdipPen.GPPen and TGdipBrush.GPBrush.
Fixed: Icons not painted properly on library manager when the library contains more than 15 items.
Fixed: Flickering when moving blocks on LiveDiagram.
Fixed: Coordinates calculated incorrectly when using AutoFrame in TextCell.
Fixed: Issue with painting of rounded blocks (Direct2D).
Fixed: Incorrect drawing of Switch block (Electric blocks).
Fixed: Access Violation in Layer Manager after changing diagram layers.
Version 4.0.1 (Sep-2010)
New: RAD Studio XE support
New: TDgrLibraryItem.CreateControl to allow adding a library control to diagram programmatically.
New: TDgrLibrary.FindItem method.
Fixed: Arrow blocks could not be selected when using GDI library.
Fixed: Access Violation drawing collapsable link points.
Fixed: Memory leaks.
Version 4.0 (Jul-2010)
New: Direct2D support (Delphi 2010 and later).
New: Improved positioning precision (from integer to floating point).
New: New UML and DFD blocks.
New: Generic classes and methods for drawing regardless of graphic library used (GDI+, Direct2D).
New: TatDiagram.GraphicLib and TDiagramControl.GraphicLib properties.
New: Fully documented source code.
New: Load/clear background features in diagram editor.
New: Menu option to show/hide Diagram Objects tab in diagram editor.
New: TDiagramEditor.Diagram property.
New: Parameter in TatDiagram.EndUpdate method for optimization.
New: TatDiagram methods BeginUpdateSel and EndUpdateSel made public.
New: TatDiagram.CustomGroupBlockClass property.
New: TatDiagram.CustomDiagramMemoClass property.
New: TatDiagram.PageColCount and TatDiagram.PageRowCount properties.
Improved: Save / "Save as" features in diagram editor.
Fixed: Incorrect width of line buttons in TDiagramEditor interface.
Fixed: TDiagramToolBar.Mode property was not correctly updated on Object Inspector.
Fixed: Issues with copy/paste of runtime created blocks.
Fixed: Access Violation caused by copying/pasting of layered blocks.
Fixed: Linked lines were not being moved together when moving blocks with ctrl+arrow.
Fixed: Problem redrawing blocks with a rotation angle.
Version 3.4 (Jan-2010)
New: TDgrLibraryManager component implements custom Library system that allows end-user to build blocks visually in diagram and add them to the toolbar as new custom blocks.
New: Selecting one or more group members is allowed now. You can Ctrl+Click a group to select a member and individually resize, move or set properties for a block belonging to a group.
New: Photoshop-like layer system. Named layers can be added/removed in a visual layer manager. Each layer can visually be hidden or protected from being edited.
New: TDgrLibraryFolderFiler component allows custom blocks to be currently saved to files, but an abstract layer is provided to allow saving custom blocks to database or other media.
New: Library manager window allows end-user to visually manage the libraries, create new libraries, define glyphs for custom blocks, among other tasks.
New: TDgrLayerSelector combo box allows setting the layer for the selected objects.
New: Several classes, methods and properties for using new layer system programatically.
New: Support for diagram usage in frames, page controls, and other types of controls.
New: TPolygonBlock.PointColor allows to define a color for the polygon point handles that is different from the regular block handles.
New: Horizontal/vertical only moving when Shift key is pressed.
New: TatDiagram.ZoomMoveToFit method to make all existing objects to be visible in the diagram client area.
New: TRegDControl.Glyph and UseGlyph properties makes it easier to set an icon for a block in the diagram toolbar.
New: TatDiagram.DesignMode provides easy way to set the whole diagram into read-only mode.
New: Methods MMToMeasUnit and MeasUnitToMM make it easy unit conversion from mm to currently selected measurement unit.
New: Additional object restrictions crNoLink (to prevent automatic linking) and crNoRotCenterMove (to prevent moving rotation center).
New: Added several events for selectors like OnDropDown, OnCloseUp, OnKeyPress, among others.
New: TDiagramUndoItem.Obj property allows custom data associated with an undo item.
New: TatDiagram.RefreshToolbars method for requesting object toolbars to refresh its content.
New: TTextCell.Transparency and ParentTransparency properties.
New: TDiagramEditor.LibManager property.
New: TatDiagram.OnBeforeCreatecontrol event.
New: TatDiagram.MoveControlIndex method allows settings the index position of a diagram object in the internal diagram object list.
Improved: Compatibility with ParentBackground property allows use of transparent diagram controls (following same restrictions of ParentBackground property).
Improved: Diagram now gives an automatic generated name for blocks inserted programatically without a name. This minimizes losing connection links in some situations.
Improved: Old layer system now supports 64 layers instead of 32 layers.
Improved: Demo project with library manager component allows testing the new library system.
Fixed: Several issues with color selectors.
Fixed: Small issues with inplace text cell editor.
Fixed: Issue with font name and size selectors disappearing in tms ribbon toolbars.
Fixed: Issue with text cells losing text value in rare situations.
Fixed: Issue with blocks being inserted with zero width or height.
Fixed: Issue with auto created link points not being correctly positioned in some situations.
Fixed: Pasting from clipboard operation was not setting diagram modified flag.
Fixed: Cross indicators were not being displayed for side lines when the line object was TDiagramLine.
Fixed: Small issue with diamond-type arrow not being painted correctly with zoomed diagram.
Fixed: Diagram hanging when default installed printer had a default paper with small size.
Fixed: Issue with custom glyphs in selectors not being displayed when the drop down button was pressed.
Version 3.3 (Jun-2009)
New: Diagram print system improves overall diagram printing mechanism / dialog.
New: TatDiagram.PageSettings property allows setting diagram page properties for printing, like paper size, margins and paper orientation.
New: TatDiagram.PageSetupDlg method shows a dialog for page setup by end-user.
New: TatDiagram.PrintSettings allows defining printing options like copies and pages to be printed.
New: TatDiagram.WheelZoom, WheelZoomIncrement, WheelZoomMin, WheelZoomMax properties, allow diagram zooming in/out using Ctrl+Mouse Scroll.
New: TatDiagram.DPrinter property returns a TDiagramPrinter object which current printer settings.
New: TatDiagram.MeasUnit allows to set the global measurement unit (mm, cm, in) used for diagram page settings.
New: TatDiagram.UnitSymbol property retrieves the symbol for the current unit used in diagram page.
New: TDiagramEditor.OnSaveDiagram event.
New: New menu item "File | Page Setup" in diagram editor.
New: TDiagramButtons.KeepInsertingMode property.
Improved: Send to back/bring to front operations when using grouped blocks.
Improved: Print method now can optionally show a print dialog window before printing.
Improved: TDgrZoomSelector (zoom combo box) update itself automatically, being in sync with the current diagram zoom value.
Improved: Some properties and functions had types changed from single to double to improve accuracy.
Fixed: Issue with saving/loading png and jpg images.
Fixed: Several fixes in the diagram selectors.
Version 3.2 (Dec-2008)
New: Grouping concept introduced. Diagram objects can now be grouped and behave like a single object. Multi-level grouping is supported.
New: Movable rotation center allows defining a new center point for rotating objects.
New: TDiagramLine.LineStyle property allows a single line object to behave like arc, side line, bezier and straight line. No need for using different line classes anymore.
New: Group/ungroup popup menu and toolbar buttons available in diagram editor.
New: Text toolbar in diagram editor dialog allows setting text alignment, vertical alignment and font style (bold, italic and underline).
New: TatDiagram methods GroupSelectedBlocks, UngroupSelectedBlocks and AddGroup for handle groups programatically.
New: TatDiagram.SelectionMode property allows to choose Visio-style block selection (objects selected are displayed as a whole group).
New: TDiagramBackground.Picture property allows more image types for diagram background image (jpg, wmf, etc).
New: TatDiagram.TextRenderingMode allows setting high-quality antialiasing text mode.
New: TatDiagram.CanMoveOutOfBounds property allows avoiding blocks to moved to negative positions, preventing the whole diagram to be shifted.
New: tmSpecific item in TTextCellsMode allows fixed text cells at source/target position of lines.
New: Method in TatDiagram to export the diagram as bitmap/metafile to a stream instead of a file.
New: DropDownListColor property for all selector combo boxes (font selector, font size selector, etc).
New: TatDiagram.FixedSideLines property allows a different side line behavior, where intermediate handles are not automatically repositioned.
New: Arrow shape asAngleDiamond is a diamond which rotates according to line angle.
New: TDiagramControl properties IsGroup, IsMember, GroupBlock and MasterGroup provides information about block grouping.
New: Protected method TDiagramControl.TextCellsChanged.
New: TStretchHandle.AlwaysMovable property allows a handle to be moved even when crResize restriction is present.
New: TLinkPoint properties CanAnchor, CanAnchorInMove and AcceptAnchoreds allow better control of link point behavior.
Changed: TDiagramControl.GetTextCellRect method signature.
Improved: Side line automatic positioning.
Fixed: Database block text cell could not be edited.
Fixed: Issue with arc line when the arc handles were too close to each other.
Fixed: Error with block gradient in some specific situations.
Fixed: Small visual issue in diagram editor: "target arrow" popup menu item caption was displayed incorrectly.
Fixed: Several compilation warnings removed.
Version 3.1 (Oct-2008)
New: Delphi/C++Builder 2009 support.
New: Rounded square block shape (TBlockShape type bsSquareRound).
New: Half-line arrow (TArrowShape type asHalfLine).
New: TGPCanvas.DrawLine method.
New: TLinkPoint.Visible property.
New: TTextCell.Obj property.
New: TatDiagram methods CanPaste and CanCopy.
Improved: Bezier lines with a smoother look.
Improved: TatDiagram CopyToClipboard, PasteFromClipboard and CutToClipboard methods now works with both selected objects and selected text.
Improved: Copy/paste operations in designer now also works while editing text in blocks.
Fixed: Several operations using selectores were not undoable nor notifying modifications in diagram.
Fixed: Issue in machines without gdiplus32.dll installed.
Fixed: Issue with background repainting in Delphi 2007 and above.
Fixed: Issue with text cells being clipped wrongly.
Fixed: Issue with side lines not being updated after loading diagram file in some situations.
Fixed: Issue with hiding page lines in a machine with no printer installed.
Version 3.0 (Jul-2008)
New: Overall drawing architecture redesigned to support GDI+ functions and provide more modern, Visio-like look and feel. (*)
New: TDiagramControl.Transparency allows to specify the overall transparency for the diagram object (from 0% to 100%).
New: TatDiagram.SmoothMode allows setting the anti-aliasing level (drawing in high quality).
New: PNG, TIF, GIF and JPG images supported in blocks (when using GDI+ mode).
New: TatDiagram.DragStyle allows more Visio-like dragging (objects are fully drawn when moved/resized, not only the frame cursor).
New: TatDiagram.HandleStyles allows choose the visual style of the handles, between classic (small black squares) or Visio-like (medium-size green).
New: TBlockShadow.Transparency allows to specify shadow transparency.
New: gsRuler grid style for a more modern, Visio-like, ruler-attached snap grid.
New: TatDiagram methods for pixel/unit convertion: ClientToInches, ClientToMilimeters, MilimetersToClient, InchesToClient.
New: TDiagramControl.IsGdiPlus property specified is the object will be drawn using GDI+ functions.
New: Diagram editor dialog now has a new toolbar selector for setting block transparency.
New: Design-time context popup menu options to save/load diagram to/from file.
New: TDgrTransparencySelector control for easy setting block transparency.
New: TDiagramEditor.Title property.
New: TDiagramEditor.OnCreateDesigner and TDiagramEditor.OnShowDesigner public events.
New: TLiveDiagram protected virtual methods: DoBeforeExecuteNode and DoAfterExecuteNode.
New: TLiveDiagram.MaximumIdle property specified maximum idle time for executing nodes.
New: TLiveDiagram.RunErrorMsg property provides the description of error raised while executing the diagram.
New: TStretchHandles.RotateHandle function retrieves the handle which performs block rotation.
New: Property Anchors was made published in all selectors.
Update: All existing core blocks (flowchart, electric, arrow, live diagram) updated to be drawn with more modern look (gdi plus functions).
Improved: More modern look (and Visio-like look) in diagram editor dialog.
Fixed: Preview page not being centered when resizing preview window.
Fixed: Rare Access Violations while executing live diagrams.
Fixed: NPTIGBT electric block being drawn incorrectly.
Fixed: Issue with "No default printed selected" message.
(*) GDI+ new features are not supported in C++ Builder 6.
Version 2.4 (Sep-2007)
New: TDiagramButtons control: a new diagram toolbar with a more Visio-like appearance. Only for Delphi version 2005 and higher.
New: TDiagramAlign action, for making easy alignment and spacing of blocks.
New: TDiagramEditor component. A ready-to-use and full-featured diagram editor including the new Visio-like toolbar (Delphi 2005 or higher) and new alignment palette.
New: TatDiagram.KeyActions property.
New: TTextCell.Visible property.
New: TatDiagram.OnAfterDrawBlock event.
New: TDiagramControl.IsBackgroundControl property.
New: TDiagramControl.CalcSize virtual method.
New: TSnapGrid.Force property.
New: TLineArrow.DiagramLine property made public.
New: AIgnoreZoom parameter in TatDiagram.HandleAtPos method.
Improved demo: Now the demo just uses the TDiagramEditor component.
Improved: Warnings removed.
Fixed: Shadow of blocks were sometimes being drawn with wrong pen width.
Version 2.3 (Jul-2007)
New: TatDiagram.ConnectionLineId method allows automatic linkpoint linking without need to choose a line object from the toolbar (see DiagramDemo).
New: TatDiagram.PageLines property allows to make page lines visible to indicate the printed page size.
New: TatDiagram.AutoPage property allows automatic redimension of diagram area according to the printed page size.
New: TLiveDiagram save/load state mechanism. The state of the chart being executed can be saved and retrieved later by using LoadState methods and OnSaveState event. Any live block can signal the chart to be saved (by setting ExecInfo.WaitState property in OnExecuteEx event).
New: LiveDiagram execution paths concept. A live diagram can have multiple execution paths, by the use of TLiveForkBlock (to split a single execution path in multiple execution paths) and TLiveJoinBlock (to join multiple execution paths in a single execution path).
New: TDiagramControl.MakeVisible method.
New: TatDiagram.MakeControlVisible method.
New: PageUp/PageDown key support for scrolling the diagram area.
New: TDiagramToolbar.ButtonSize property.
New: dbLines in TDiagramToolbarButtons allows to make the diagram toolbar to show only lines (to be used in conjunction with TDiagramToolbar.Mode property.
New: TDiagramToolbar.Mode property (tmObjects, tmConnections). It makes it possible to use the diagram toolbar to choose the line object for automatic connections (to be used in conjunction with TatDiagram.ConnectionLineId).
New: kmLinesOnly item in TKeepInsertingMode for the diagram toolbar.
New: TDiagramConnectionID action.
New: AsText parameter in TatDiagram.LoadFromStream and TatDiagram.SaveToStream methods allows text format saving of diagram content.
New: Public methods TDiagramControl.HasDefaultTextCell and TDiagramControl.DefaultTextCell.
New: TLiveDiagram.OnExecuteEx event. This event passes a TExecuteNodeInfo object which gives more flexibility over the execution flow and state saving.
New: LiveDiagram: TDiagramState type dsView shows the current state of live diagram chart.
New: TLiveDiagram.MakeActiveNodeVisible shows the current node being executed in diagram.
New: TLiveDiagram.ViewStateMode property specifies if the start, end or current executed node (block) will be highlighted.
New: Live diagram fork block demo.
Improved: Simple (main) demo has a connection toolbar for choosing automatic connections.
Improved: Clipboard operations in live diagram now supported with default diagram actions.
Fixed: OnDControlMouseUp not being called when right-button was clicked.
Version 2.2 (Apr-2007)
New: TTextCell.CellFrame property with Pen, Brush, Color, Transparent, AutoFrame, AutoFrameMargin, Visible subproperties.
New: TatDiagram.ShowCrossIndicators property - valid only for side lines.
New: Added control restrictions: crKeepRatio, crNoClipboard, crNoSelect.
New: TLinkPoint.LinkConstraint property.
New: TatDiagram events: OnBeforeResize, OnAfterResize, OnDControlResizing.
New: TDiagramArc.InvertOrientation method.
New: unPixel option in TDiagramRuler.Units property.
New: TatDiagram.IgnoreScreenDPI property.
New: Diagram toolbar now works vertically.
Fixed: Transparency not being saved or undoed.
Fixed: RequiredConnections was not working properly.
Fixed: Some images were not being displayed in print preview.
Fixed: Minimum width and height of blocks are now being respected.
Special thanks to Phil Scadden.
Version 2.1 (May-2006)
New: Live Diagram framework. A diagram descendant component which "runs" flowchart and statechart diagrams. Includes new TLiveDiagram component and several live flowchart blocks and live statechart blocks. Includes two new demos to ilustrate Live Diagram usage, and updated documentation.
New: TDiagramControl.AutoCreateLinkPoints property.
New: TCustomDiagramLine.RequiresConnections property.
New: TatDiagram.PaintLinesFirst property.
New: TDiagramControl.GetLinkPointClass method.
New: TatDiagram.OnCloseEditor event.
New: TatDiagram.OnDControlMouseDownEx event.
New: TatDiagram.HandleAtPos method.
New: TLinkPoint.Obj property.
New: TCustomDiagramLine.GetLineArrowClass protected method.
Improved: TatDiagram.DControlAtPos method.
Improved: TDiagramControl.DrawCells method turned from static to virtual.
Improved: TLineArrow.Draw method turned from static to virtual.
Fixed: Several bug fixed, specially issues with zooming and scrolling while editing texts.
Special thanks to Davide Nardella and Martijn Tonies.
Version 2.0 (Dec-2005)
New: TDgrPenStyleSelector, TDgrPenColorSelector, TDgrPenWidthSelector, TDgrBrushStyleSelector, TDgrShadowSelector, TDgrGradientDirectionSelector, TDgrColorSelector, TDgrTextColorSelector components which are ready-to-use, diagram-integrated buttons/combo boxes which allow easy edit of block properties like pen style, color and with, brush style, shadow, gradient, background color and font color.
New: TDgrFontSelector, TDgrFontSizeSelector, TDgrZoomSelector components which are ready-to-use, diagram-integrated, ms office-like combo boxes for easy edit of font name and font size of block, and also set the zoom ratio of diagram.
New: TatCustomDiagramBlock.Picture and PictureMode properties allow different image format in blocks, like JPG (using jpeg.pas unit) or any other format derived from TGraphic class.
New: Methods StartZooming and EndZooming allows putting diagram in zoom mode, where end-user click the diagram to zoom, or select a zoom area by drawing a selection rectangle.
New: TatDiagram.ExportBackgroundColor property allows defining a background color while exporting diagram to a bitmap or metafile.
New: TCustomRuler.AutoFactor property allows disabling autofactoring of ruler divisions while zooming.
New: TCustomDiagramBlock.RotationStep property allows changing the angle step while end-user is rotating a block.
New: DrawBlockInCanvas method, which is a public version of DrawBlock method, allows drawing the block in a different canvas.
Changed: Clicking objects with Shift key pressed was only selecting the object. Now it selects/deselects the object which as clicked.
Version 1.9 (09-Feb-2005)
New: Polygon property and ChangePolygon method in polygon block allows defining the polygon progamatically.
New: Properties LinkCursor and PanCursor.
New: Added Layer and StringData properties for arrow blocks.
New: Public method CloseEditor.
New: Public property PaintStyle.
New: Public method FindCompName.
New: Property ClipboardNamePrefix.
New: Now end-user can insert the same block multiple times, without having to click the toolbar button again to insert a new block (controlled with TDiagramToolbar.KeepInsertingMode property).
New: ExportToFile method allows exporting diagram to bmp or wmf (thanks to Ruediger Kabbasch).
Improved: CopyBitmapToClipboard and CopyMetafileToClipboard: new parameter to export only diagram area (remove empty area around diagram).
Changed: WriteText method is now virtual.
Updated: help file with full reference for diagram and toolbar components.
Version 1.8.2 (30-Nov-2004)
- Delphi 2005 support added.
Version 1.8.1 (31-Oct-2004)
- Issue with parent window handling fixed.
Version 1.8 (23-Oct-2004)
New: Expanding/collapsing nodes system. Linkpoints can be turned into nodes and nodes can be expanded/collapsed, showing/hiding the other blocks attached to the link point.
New: TatDiagram.AutomaticNodes property controls this behaviour.
New: TLinkPoint properties Collapsable and Collapsed controls individual behaviour of link points.
New: Gradient background supported with new TatDiagram.Background.Gradient property.
New: Layers system: added Layer property for diagram controls. Added ActiveLayer, DeactivateLayer and LayerActive methods in TatDiagram component.
New: Visible property for diagram controls.
New: TDiagramUndoAction and TDiagramRedoAction actions.
New: TatDiagram events: OnBeforePaint and OnAfterPaint.
New: TatDiagram event: OnDrawLinkPoint.
New: StringData property for diagram controls.
New: TatDiagram method CopyImageToMetaFile.
Improved: TatDiagram.PaintToBitmap method turned public.
Fixed: Problem while saving diagram if text block is being edited.
Fixed: Bugs in copy/paste operations.
Fixed: No OnInsertBlock and OnInsertLink events when pasting from clipboard.
Fixed: OnModified event being fired on block selection.
Fixed: DiagramSideLine position was not being saved.
Fixed: Copy/Paste changes diagram properties.
Version 1.7 (06-Jul-2004)
New arrow blocks: Standard, Double, Quad, Triple, Chevron, Block Single, Block Double, Corner Single, Corner Double (thanks to Nick Glasier).
New electric blocks: Zener Diode, Comparator, Inductor, Non-linear inductor, Ground, NPN/PNP Transistor, PTIGB, PIN, Thyristor, MOSFET, Switch, Duo Coil XForm, Tri Coil XForm, DC Voltage Source, DC Current Source (thanks to Steve Evans).
New: TatDiagram.Redo method.
New: Gradient designer & action.
New: Shadow designer & action.
Improved: Undo behaviour.
Solved: SaveToStream erroneously storing some DesignTime properties.
Solved: Snap to grid was sometimes not snapping correctly.
Solved: OnDControlMouseUp event was not being generated when a block was resized from larger to smaller size.
Solved: Polyline insertion with snap to grid on was not being done correctly.
Version 1.6.2 (07-May-2004)
New: Method TatDiagram.DControlAtPos.
New: Property TatDiagram.MovingStartPoint.
New: Events for TatDiagram: OnBeforeMove, OnAfterMove, OnMoving.
New: Category tabs in design-time diagram toolbar.
New: TCustomDiagramBlock.Resize virtual method.
New: Stretch handle style: csCustom.
Improved: Solved Problem with 'blk_tcustomdiagramblock' error message.
Improved: AV after deleting blocks during OnMouseMove.
Version 1.6.1 (21-Apr-2004)
New: Workflow demo shows how to use Diagram to integrate it to your application logic.
New: TatDiagram.MouseWheelMode property.
New: TatDiagram events: OnBlockMouseEnter e OnBlockMouseLeave.
New: Method TatDiagramControl.PointInControl.
Fixed: Minor bug when printing arrows (arrow size was wrong).
Fixed: Minor bug: Changing TDiagramSideLine.Orientation1 property was not updating diagram.
Version 1.6 (08-Apr-2004)
Polygon block.
Arc and Bezier lines.
Metafile support in blocks (metafiles do not rotate in W95/98/Me systems).
New TatDiagram events: OnDrawShape, OnGetSurroundPts, OnAcceptAnchor, OnAcceptLink, OnRemoveDControl.
New TatDiagram properties: HorzScrollBar and VertScrollBar. These new properties allow setting a fixed diagram size (width/height), by changing Range property of scroll bars.
New TLinkPoint properties: AnchoredCount and Anchoreds.
New block restriction: noDelete.
New TatDiagram methods: ClientToCanvas and CanvasToClient.
Panning behaviour corrected.
Fixed visual bug with scroll bars.
Fixed bug with transparent bitmap drawing.
Removed protected property TCustomDiagramLine.Points.
Version 1.5.1
New panning support.
Fixed issue with line captions.
Fixed issue with line dragging.
Fixed issue with copy as image.
Version 1.5
New in the Diagram Studio components:
TDiagramPolyLine object;
TDiagramControl.TextCells property - blocks can have multiple text cells;
Captions (text cells) for line objects;
Improved text editing when vertical alignment is set to vaCenter or vaBottom;
Public TCustomDiagramLine.Handles property allow to set lines position from code;
New diode and capacitor blocks;
BringToFront and SendToBack methods;
Keyboard events OnKeyPress, OnKeyDown and OnKeyUp added;
Multi-purpose TDiagramControl.Obj property added;
Hint, ShowHint, ParentShowHint properties in blocks;
Improved print preview rendering;
Print button in preview now opens printer setup dialog;
Cursor property in diagram controls;
TAction descendant objects for easy add interface actions to diagram applications;
New actions supported: Show/hide left ruler, show/hide top ruler, show/hide snap grid, change shape (block) color, change line (pen) color, block picture, bring to front, send to back, change arrow shape, change text font;
BorderColor property.
New flowchart blocks: TFlowCommentBlock, TFlowListBlock, TDatabaseBlock.
New Electric blocks: TCapacitorBlock, TLampBlock, TDiodeBlock.
Minor bug fixes.
New in the Diagram Studio demo: added popup menu, toolbar and menu options for
Change block color;
Change line color;
Change block picture;
Bring to front;
Send to back;
Change arrow shape;
Change text font;
Show/hide grid.
Added categories tab in diagram objects toolbar.