流程图控件MindFusion.Diagramming for ActiveX常见问题集锦(上):删除表格等

流程图控件MindFusion.Diagramming for ActiveX常见问题集锦(一):删除表格等

MindFusion.Diagramming for ActiveX(之前版本叫FlowChartX)是一个ActiveX 控件。它能帮助你创建工作流图,流程图和图表处理,数据库实体关系图表,组织,层次和关系图表,网络配置,图表和树。

最新版本4.9.5发布,包含多项新功能改进和bug修复,点击查看详情

MindFusion.Diagramming for ActiveX最新试用版

点击查看下一篇:

流程图控件MindFusion.Diagramming for ActiveX常见问题集锦(下):设置鼠标光标等

问:有更好的方法来在VB中使用控件实现OLE拖放/strong>

答:有一个名为drProgrControlVB的新拖放模式,它具有与drProgrControl相同的功能。区别在于,将属性设置为VB模式时将触发的事件将参数IVBDataObject接口与自动化兼容。FlowChartX VB事件的名称与在drProgrControl模式下触发的事件名称相同,只是将“ VB”后缀添加到它们中。

问:如果尝试访问传递到RequestCreateArrow事件中的箭头的DestinationBox属性,则会遇到应用程序错误!

答:触发RequestCreateArrow后,箭头的DestinationBox对象仍未设置。我们添加了一个名为ExpectedDestination的新箭头属性,该属性仅在RequestCreateArrow事件处理程序中有效。它指的是如果验证了箭头创建后将成为箭头目标对象的框或表。

问:我无法访问box对象的Font属性,每次都会引发错误。

答:默认情况下,所有对象(表格,框,箭头)的字体均设置为null / nothing。当图表对象的字体为null时,流程图的字体用于呈现对象的文本。这个想法是通过不为每个图表元素分配字体来减少内存使用。当对象的字体为null时,它将使用流程图的Font呈现其文本。因此,如果您需要为不同的对象使用不同的字体,则应首先使用VB SET语句将它们设置为某个值,然后您就可以无错误地访问Font属性。

问:我希望能够删除表格及其相关的子表格。除非有可能创建一个组并使用DestroyGroup方法,否则我看不到能够做到这一点的方法。

答:您可以使用递归算法对表进行级联删除,如下所示:

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 tblend sub sub someSub if fc.ActiveItem = itTable then CascadingDelete ActiveTable end ifend sub

问:我的系统允许用户构造流程图,但是我想在允许放置箭头之前检查周期。我一直在使用RequestCreateArrow来基于前面和后面的对象验证箭头,但是直到最终放置箭头后,我才能使用FindCycle函数。您知道解决此问题的方法吗/strong>

答:您可以使用FindShortestPath方法来检查是否存在一个带有正在创建的箭头的循环。例如,如果在框b1-> b2之间创建了箭头,则如果FindShortestPath(b2,b1)找到一条路径,则意味着将箭头添加到该路径将导致循环(箭头连接了箭头的两端)找到路径)。

另一个解决方案:如果正在创建从b2到b1的箭头,则如果FindShortestPath(b1,b2)返回路径,则再次意味着添加箭头将导致循环。

因此,在您的RequestCreateArrow事件处理程序中,您可以使用以下代码:

if FindShortestPath(arrow.SourceBox, ExpectedDestination) = Nothing then create = trueelse  create = falseend if

问:我想以编程方式更改对象的位置(例如,移动盒子)。如何使用VB6做到这一点/strong>

答:可以使用SetRect方法更改框和表的位置。

MindFusion.Diagramming for ActiveX现已加入在线订购,现在抢购立享优惠

想要购买MindFusion.Diagramming for ActiveX正版授权的朋友可以咨询官方客服

更多精彩内容,敬请关注下方的微信公众号,及时获取产品最新资讯▼▼▼

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月11日
下一篇 2019年10月11日

相关推荐

发表回复

登录后才能评论