MindFusion - ActiveX and .NET Components
MindFusion - ActiveX and .NET Components MindFusion - ActiveX and .NET Components
MindFusion - ActiveX and .NET Components MindFusion - ActiveX and .NET Components Home Contacts Sitemap MindFusion - ActiveX and .NET Components MindFusion Logo MindFusion - ActiveX and .NET Components
MindFusion - ActiveX and .NET Components MindFusion - ActiveX and .NET Components MindFusion - ActiveX and .NET Components
Flowchart and Diagramming Controls Flowchart and Diagramming Controls
  Products                     
  FlowChartX                 
  FlowChartX Pro          
FlowChartX Professional Edition Diagramming Component - Features Features                
FlowChartX Professional Edition Diagramming Component - Online Demo Online Demo
FlowChartX Professional Edition Diagramming Component - Free Download Download               
FlowChartX Professional Edition Diagramming Component - Software Screenshots Gallery                    
FlowChartX Professional Edition Diagramming Component - Awards Product Awards    
FlowChartX Professional Edition Diagramming Component - Code Samples FAQ                        
FlowChartX Professional Edition Diagramming Component - Forum Forum                    
FlowChartX Professional Edition Diagramming Component - Purchase Information Buy                         
  FlowChart.NET             
  FlowChart.NET Pro     
  JDiagram                   
  PocketChart               
  MasterChart               
  Planner.NET                
  PocketPlanner  
  XML Viewer                
  InSight Diagrammer  
  Support                      
  Services                     
  Company                     
  Web Store                  
Flowchart and Diagramming Controls
Flowchart and Diagramming Controls Flowchart and Diagramming Controls
Frequently Asked Questions - FlowChartX Pro
Flowchart and Diagramming Controls
FlowChartX Pro FAQ

    Implementing OLE drag and drop functionality in
    Visual Basic.

     Application error in the Arrow.DestinationBox property.

     Problems accessing the Box.Font property.

     Deleting a table and all its related children.

     Checking for cycles before creating new arrows.

     Moving an object with Visual Basic 6.

     Using the manipulation handles mask.

     Setting mouse cursors.

     Loading images in Visual Basic.

     Technical support and upgrades.

     Demo version restrictions.

     License restrictions.

FAQ

FAQ

Q:    FlowChartX drag and drop method passes an object of type FLOWCHARTLibCtl.IdataObject, which I assume is just a typelib for the standard COM IDataObject. The problem is that I'm trying to access the data in the dataObj, but I'm getting "Automation type not supported in Visual Basic" runtime error. Do you have a workaround for this? Is there a better way to implement OLE drag and drop with your control in VB?

A:     There's a new drag-and-drop mode called drProgrControlVB, which has the same functionality as drProgrControl. The difference is that the events, which are fired when the property is set to VB mode take as parameter IVBDataObject interface which is automation compatible. The FlowChartX VB events have the same names as those, which are fired in drProgrControl mode just the 'VB' suffix is added to them.

back to top

FAQ

Q:     I get an Application Fault if I try to access the DestinationBox property of the arrow passed into the RequestCreateArrow event!

A:     When RequestCreateArrow is fired the arrow's DestinationBox object is still not set. We have added a new arrow property, called ExpectedDestination, that is valid only in RequestCreateArrow event handlers. It refers to the box or table that will be the arrow's destination object if the arrow creation is validated.

back to top

FAQ

Q:     I can not access the Font property of the box object, it throws an error each time.

A:     By default the fonts of all objects (tables, boxes, arrows) have their fonts set to null/nothing . When a diagram object's font is null, the font of the flowchart is used to render the objects' text. The idea is to cut down memory usage by not allocating fonts for every diagram element. When the font of an object is null it uses the flowchart Font to render its text. So if you need different fonts for different objects you should first set them to some value, using the VB SET statement and after that you'll be able to access the Font property without errors.

back to top

FAQ

Q:     I want to be able to delete a table together with its related children. I don't see a method to be able to do that unless maybe If I create a group and use the DestroyGroup method. Not sure about that...

A:     You could use recursive algorithm to make cascading deletes of tables, something like this:


`*************************

sub CascadingDelete(tbl as Table)
  dim i as integer

 `this will delete all child tables
  For i = 1 To tbl.GetRelatedTables(1, 
   		 rlManyToOne).Count
     CascadingDelete tbl.GetRelatedTables(1,
	   rlManyToOne).Item(0)
  Next i

  `the current table has no more children
  `so we can delete it
  fc.DeleteItem tbl
end sub

sub someSub
  if fc.ActiveItem = itTable then
    CascadingDelete ActiveTable
  end if
end sub

`***************************

back to top

FAQ

Q:     My system allows users to construct a flowchart, but I want to check for cycles before allowing an arrow to be placed. I have been using the RequestCreateArrow to validate the arrow based on the preceding and following objects, but I can't use the FindCycle function until the arrow has finally been placed. Do you know any work around for this problem?

A:     You can use the FindShortestPath method to check if there will be a cycle with the arrow that's being created. For example, if the arrow is being created between boxes b1 -> b2, then if FindShortestPath(b2, b1) finds a path, means that adding the arrow to this path will result in a cycle (the arrow connects the both ends of the found path).

Another solution: if the arrow is being created from b2 to b1, then if FindShortestPath(b1, b2) returns a path, that means again that adding the arrow will result in a cycle.

So, in your RequestCreateArrow event handler you could use such code:

if FindShortestPath(arrow.SourceBox,
   ExpectedDestination) = Nothing then
 create = true
else
  	create = false
end if
			 

back to top

FAQ

Q:     I would like to change an object's position (for example move a Box) programmatically. How can I do this with VB6?

A:     Boxes and tables' positions can be changed with the SetRect method.

back to top

FAQ

Q:     We use the mnp handles mask as follows:

IBoxItem* pBox = 
    m_pFCXWidget->createBox( QRect( 250,
    250, 140, 40 ), "Hallo!", "Tool Tip" );
When the mask of the MnpHandles Property is set to:
 pBox->put_MnpHandlesMask( 110100000 );
only the move handle and the right edge handle are shown?

A:     The handles mask is a bitmask actually, so 110100000 should be the binary representation of the mask. Call the function with the decimal representation of this number:

bin 110100000 = dec 416 
so
pBox->put_MnpHandlesMask( 416 );


back to top

FAQ

Q:     How can I set mouse cursors with FlowChartX?

A:     The mouse cursor can be changed using the SetMouseCursor method of the FlowChart object, which has the following prototype:

SetMouseCursor(type, handle, destroyOld)
where:
'type' is the cursor type that you want to replace ( for example the mcArrowStart constant (= 3) indicates mouse cursor for an arrow start );
'handle' is cursor resource handle, as returned by the ::LoadCursor Window's API;
'destroyOld' is a boolean value indicating if the previous used cursor should be destroyed;

For example, if the FlowChart object is called 'fc' you can use the following Visual C++ code to change the cursor:

fc.SetMouseCursor(mcArrowStart,(ULONG)::
   LoadCursor(NULL, IDC_ARROW), FALSE);

back to top

FAQ

Q:     How can I call LoadPicFromRes from a VB program?

A:     You should insert your image files (.jpeg, .ico, .bmp, etc) as custom resource. You should give them string IDs, not integers as resource editor uses by default. If the resources are located in your .exe file you can pass 0 for resource-instance handle.

Note that when the project is run in VB in interpreted mode the resources cannot be found using 0, because the project is run in the process of VB.EXE. If you build the project as an executable and run it, it works just fine.

If you store your resources in a separate dll, you should use GetModuleHandle API function to get the instance handle for the dll.

back to top

FAQ

Q:     I am seriously considering to buy FlowChartX. What technical support do I get with the control. How much should I pay for further versions?

A:     Everyone who has a licensed copy of FlowChartX gets technical support and upgrades for free 12 months after the purchase.

back to top

FAQ

Q:     I have downloaded the FlowChartX demo version. What are its limitations?

A:     In the demo version users are restricted with the number of objects they could create - just 32. Otherwise, the demo does not expires in time.

back to top

FAQ

Q:     The application I want to use FlowChartX in, will be distributed to a small team of users. If I buy the 'Standard single - developer' version, will I be able to distribute the control to each user? Or should I buy the 'site-wide' licence?

A:     FlowChartX licenses do not limitate the number of users of your end product. If you are a freelance developer or the only developer that will work with the control in an organisation, than you can purchase single-developer license, but distribute your final application to as many users as you want. The price is based solely on the number of developers that will use the control (and therefore on our technical support costs).

back to top

FAQ

Flowchart and Diagramming Controls