怎么实现画流程图软件,图形拾取的问题

chenybin 2003-06-24 07:53:51
1、流程以什么方式比较好,我现在想的是一些小的TIMAGE作为流程中的过程,然后用CANVAS来画线,但是总觉得不对
2、如果是在TIMAGE里面用CANCAS的话,线条是不能拾取的,所以我就需要在我画线和删除的时候用一个数珠来记录,但是始终觉得线条不能很方便选择和拖移等操作
3、这样的话,那些中间的过程也就是框框我用什么表示好点呢,也用一个数珠来记录位置,用CANVAS来画吗?
4、线条是一个有箭头的线条,一个是我想让线条比较直,而不是斜的,就是说如果出现斜的,那么我就把它弄成是折线,而且我想的是如果线条没有连接两个过程,那么就没有意义,所以线条可以自动选择离自己比较近的过程,也就是步骤。
我对画图不是很熟悉,希望大家可以给一些帮助,另外我看了论坛以前的资料。有些有TLINE之类的东西,但是也不全面,希望不要见笑,但是有个谁的TLINE 好象比较好,不过我一直没有找到可以下的

谢谢了,解决后可以高分相送
...全文
340 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdh 2003-09-22
  • 打赏
  • 举报
回复
嘿嘿,流程图的实现,我以前做过一点,
你肯定用过VC吧,在DELPHI中也一样,VC中的Doc/View体系比较适合画流程图,不要从TwinControl、TControl.Tobject....中继承,直接定义好什么节点、连线的数据结构(Record or Struct),然后在一个Canvas(or DC)上画,
至于拾取的问题,应该在在鼠标单击后,得到当前鼠标的位置,检查所有节点或连线的位置,看鼠标是否包含在某节点内,然后进行该节点与连线的拾取显示变化或拖动(这里记住画图时需要用到颜色的异或计算)
这些东西应该可以在一个TCanvas的子类中实现()。
IOsetting 2003-09-13
  • 打赏
  • 举报
回复
从Object上继承的话,响应鼠标事件呢?如果还要有右键弹出菜单呢?还是从CustomControl方便些吧
lance 2003-09-13
  • 打赏
  • 举报
回复
你不应该从CustomControl继承!
而是应该直接从TObject继承!
IOsetting 2003-09-13
  • 打赏
  • 举报
回复
我有一个实现线条跟着点走的例子,但是这个例子的绘制完全是使用一个CustomControl类实现的,
再往下做会比较麻烦。例子在这里下:http://www.fjosty.com/yy/02.rar

我也在做和你这个工程类似的一个项目,后面我想从底层开始,把里面的单位都用CustomControl来
实现,做成一个控件组。
xiaohuili 2003-09-09
  • 打赏
  • 举报
回复
newhua@hit.edu.cn
我也要
lance 2003-09-07
  • 打赏
  • 举报
回复
》图形拾取可以利用Mask来实现
说说看!我的思路是用区域。
lance 2003-09-07
  • 打赏
  • 举报
回复
>>我的意思是只要一個DC !
完全同意!!!
chfrain 2003-09-07
  • 打赏
  • 举报
回复
我也正在为此犯愁呢,发一份给我好吗doone@263.net
感激不尽
张代军 2003-09-05
  • 打赏
  • 举报
回复
我正有这样的困扰 能否发给我一份zdjxy@sina.com
谢谢
chenybin 2003-07-17
  • 打赏
  • 举报
回复
谢谢各位,可是为什么我没有收到阿
chenybin 2003-07-14
  • 打赏
  • 举报
回复
不是的吧,问题很简单吗?很复杂吗?说句话吧
liyuan00 2003-07-14
  • 打赏
  • 举报
回复
全部都用Canvas画在一张Bitmap上会快很多,图形拾取可以利用Mask来实现,想要程序实例就给我留言。
Hewin 2003-07-09
  • 打赏
  • 举报
回复
我正在做一個電子地圖的東西! 當然,樓主所需的功能并不用那么復雜.
但我還是見義你不要用Image,Panel這類的東西,還是老老實實的從TWinControl或是TCustomControl過來做一個你自己的類吧! 把那個類做為一個畫圖的容器! 再做幾個如
Shapes的粗像類,從它下來做一些如TLine,之類的,線呀,方呀,之類的!
我的意思是只要一個DC !
chenybin 2003-07-09
  • 打赏
  • 举报
回复
谢谢各位,希望更加详细点,当然有代码最好,这方面我确实不是强项,解决后我可以重新开帖给分

To Hewin:可以说具体些吗?

chenybin@21cn.com
glassesboy 2003-07-08
  • 打赏
  • 举报
回复
我以前写过一个类似的东西,就是用Panel做的画板,从TPanel派生了一个控件做过程,连线是在画板上画的,但是不能选定,所以我只能给你的第四点提点建议

算出需要连线的两个控件的距离(分别是X、Y的距离),然后专门写个过程处理成折线具体的代码,我记不清了,我回头找找
dudo 2003-07-04
  • 打赏
  • 举报
回复
应该使用Panel来做画板,将流程图中的元素过程、连线等设计为TGraphControl对象,这样流程图的任何一部分都可选取并使用户能够重新布局。我想你要的东西最麻烦的是线、圆型图形元件的选择,这里需要一定的算法,就像一般的作图软件一样。我做过一个电子白版,就是主要是画图功能,可以实现线条,员,矩形画、选择、改变大小、改变上下层关系等。要的话我可以发给你参考以下
itren 2003-07-03
  • 打赏
  • 举报
回复
关注:
说说我的思路.
1. 定义 Shapes: 系统所需要的形状.(可以用画图准备出来)
2. Canvas 画选中的图像.(同时记录位置信息)
3. 保存的时候保存 Shape 位置 和 关系 等.
4. 这样可不可以呢?
fhb 2003-07-02
  • 打赏
  • 举报
回复
TCAD
http://www.codeidea.com
7月中旬发布该功能,请大家关注.
chenybin 2003-06-30
  • 打赏
  • 举报
回复
谢谢提醒,其实说实在的,程序员花钱买软件的情况时很少的,何况时这个软件
Dlwxn 2003-06-27
  • 打赏
  • 举报
回复
这个问题我有一个软件,他们做到了线跟着框动,不过是exe文件。到http://www.visual-graph.com/ 看看。
加载更多回复(10)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧