Search
What's New in This Release

The list below describes recent changes and additions to FlowChartX:

New in version 4.9.9

Spatial index

Set the EnableSpatialIndex property of FlowChart to create an index of item positions for faster hit-testing and viewport clipping queries. This should greatly improve user interaction and rendering speed for diagrams containing tens of thousands or more items.

VB  Copy Code

' it will take some time to populate the diagram with a million nodes,
' but subsequent redraws and hit-tests should be very fast
fcx.SelectAfterCreate = False

Dim i As Long
Dim j As Long

For i = 0 To 999
    For j = 0 To 999
        Dim node As box
        Set node = fcx.CreateBox(20 + i * 80, 20 + j * 80, 40, 40)
        node.Text = Str(i) & ":" & Str(j)
    Next j
Next i

fcx.FitDocToObjects 20
fcx.EnableSpatialIndex = True

Note that rendering speed improves only when showing a smaller part of the diagram inside current viewport. Rendering a lot of items at small zoom levels or in overview's fit-all mode will still need a lot of processing, so you might want to apply constraints on minimal zoom level of flowchart and overview controls for large diagrams.

Miscellaneous

New in version 4.9.8

Multiple labels per node

The NodeLabel class allows multiple captions to be displayed for a single flowchart node of any type. Node labels provide a set of properties allowing full customization of their display and positioning. Label position is defined by specifying a pin point and offset from it, set through SetCornerPosition, SetEdgePosition, SetCenterPosition methods. In addition, the HorizontalAlign and VerticalAlign properties of NodeLabel specify on which side of pin point to draw the label's caption.

For example, following code adds extra labels to top-left and bottom-right corners of a Box:

VB  Copy Code

Dim node As box
Set node = fcx.CreateBox(50, 50, 100, 80)
node.Text = "text" ' centered main text

Dim lb1 As NodeLabel
Set lb1 = New NodeLabel
lb1.Text = "label 1"
lb1.SetCornerPosition 0, 0, 0
lb1.HorizontalAlign = saNear
lb1.VerticalAlign = saNear
lb1.BackColor = vbRed
lb1.TextColor = vbWhite
lb1.Margin = 1
node.AddLabel lb1

Dim lb2 As NodeLabel
Set lb2 = New NodeLabel
lb2.Text = "label 2"
lb2.SetCornerPosition 2, 0, 0
lb2.HorizontalAlign = saFar
lb2.VerticalAlign = saFar
lb2.BackColor = vbYellow
lb2.TextColor = vbRed
node.AddLabel lb2

Miscellaneous

New in version 4.9.7

Mouse wheel

The control now provides built-in mouse wheel handling. By default, rotating the wheel scrolls the view vertically. Users can scroll horizontally by holding down the Shift modifier key while rotating the mouse wheel. The Control modifier scrolls the view in larger amounts (half the viewport width or height depending on scroll direction). Setting the MouseWheelAction property to Zoom makes wheel rotation zoom into the view instead. You could implement your own mouse-wheel logic by setting MouseWheelAction to None and handling the MouseWheel event.

Miscellaneous

  • The Opacity property lets you apply semi-transparency to all graphic elements of a diagram item.
  • EPicturePos supports new picFitLeft, picFitTop, picFitRight and picFitBottom alignment styles, which resize Picture to fit node's boundaries and align it to respective border.
  • The CancelDrag method lets you cancel current mouse interactions.
  • The ChangeBehavior method allows changing Behavior value without clearing selection.
  • PNG transparency now supported in GDI+ mode.
  • The RedrawCacheImage method lets you reset back buffer when you need to change appearance of stationary objects during user interaction.
  • MultiProc2 box shape.
  • The MoveNodes behavior allows grabbing nodes to drag them without using adjustment handles.

New in version 4.9.6

Registration free deployment

Distribution now includes manifest files for side-by-side / registration free deployment. MindFusion.Diagramming.32bit.manifest describes the 32-bit version of the component, and MindFusion.Diagramming.64bit.manifest describes the 64-bit version. To load the component without registering it, add a dependentAssembly entry to your application's manifest:

manifest  Copy Code

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
     version="1.0.0.0"
     processorArchitecture="*"
     name="app.exe"
     type="win32"
  /> 
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="MindFusion.Diagramming.32bit"
        version="4.9.6.0"
        processorArchitecture="x86"
        language="*"
      />
    </dependentAssembly>
 </dependency>
</assembly>

PNG support

The LoadPicture method can load png images, both in classic and GDI+ graphics modes.

Layout improvements

Miscellaneous

New in version 4.9.5

Selection improvements

Flowchart size and scrolling

Miscellaneous

New in version 4.9.4

Flip shapes

The shape of bsShape boxes can be flipped horizontally or vertically. Enable the AllowFlip property and the shape flips when an edge is dragged over its opposite edge. You can get or set current flip state using FlipX and FlipY properties.

Arrow improvements

  • ArrowsSplittable now works for Bezier links too. Users can insert a new Bezier segment by dragging any point (other than a control point) of a selected link. Adjacent segments can be merged back into a single one by dragging a tangent control point (square adjustment handle) onto a pass-through control point (round adjustment handle).
  • IntermArrowHead shapes are now rendered at correct position for Spline links.

Miscellaneous

  • KeepGroupLayout property now available in all graph layout classes (previously only in TreeLayout). If KeepGroupLayout is enabled, a group of nodes is treated as single vertex of the graph being arranged, and initial relative positions of group's nodes are preserved.
  • The bhPan Behavior value lets you pan the view without holding down modifier keys.