Graphviz dot(或自己克隆)-如何自动排列面板?

4
我想读取数据库模式并显示表格和链接它们的键。这是Graphviz Dot擅长的事情(例如,类似于this,但是用于数据库表格)。我想使用Delphi来读取d/b模式,生成一个DOT输入文件,调用DOT并在TImage中显示结果,但我希望能够将表格表示为VCL组件,具有上下文敏感菜单等可单击的功能。更多的读写而不仅仅是只读。
我还想以通用的方式执行此类操作,而不仅仅是针对数据库。
到目前为止,很模糊且可能被删除,因此现在是提出具体问题(或两个问题)的时候了。
如何自动排列VCL组件(例如TPanel)?
我该如何在视觉上将它们连接起来(用箭头)?到目前为止,我只发现了ExpressForum Library中的TDxfconnector,但这似乎限制了连接点仅在角落和边缘的中间。如果我有一个(设计不良的)数据库表,其中包含另一个表的16个索引,我该如何使用箭头将它们链接起来?
我认为这可以分为两种情况 - 静态和动态(我只是画一个图表,还是用户可以拖动组件并期望箭头跟随?)。
这可行吗,还是我太雄心壮志了?我正在搜索现有的VCL组件,但没有真正的运气。

[更新] 请参见http://kylecordes.com/2003/graphviz-delphi


1
这里有一个可以减少你工作时间的东西:http://www.delphiarea.com/products/delphi-components/simplegraph/ - user497849
1
我不会使用面板,而是使用一些TGraphicControl的后代并进行自己的绘制。这是来自一个比你想象中还要少经验的人的建议... - Marjan Venema
1
@Mawg - 所有这些图形绘制的事情都是一个时间黑洞。它非常迷人,但也完全没有希望(就像_NP-complete_一样迷人)。所以,除非你打算花几年时间玩弄你的程序,否则就使用一些第三方软件吧。 - Leonardo Herrera
@ComputerSaysNo 我认为Leonardo的回答是“正确”的,但是由于你提供了非常有用的组件,我将把问题授予你,如果你能发布一个答案。 - Mawg says reinstate Monica
1
@Mawg 谢谢,但我很好,不在这里为了“声望”,希望你能找到解决问题的方法,也许可以把它作为一个答案发表? - user497849
1
请查看:http://www.galapagossoftware.com/developer-tools/pasviz 这是你链接的2003组件的更新版本。 - Johan
1个回答

2

我所知道的与您需要的最接近的组件是来自delphiareaSimple Graph,在那里,您可以看到其他许多高质量的组件!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接