binglin 发表于 2007-10-31 08:35:59

为了让大家对DELPHI图形编程有所认识,发两幅编的图形应用程序的截图

DELPHI的图形编程,总体来说还是可以的,当然如果对速度要求比较高时,可以直接调用API来画图。

上两张我以前编的程序运行界面,请别问我要源码,因这些是程序虽然是我开发出来,但版权不是我的,我没权把它公开。

在这个坛子里第一次发图,哈哈哈。

binglin 发表于 2007-10-31 08:41:19

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179218.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179219.jpg

favr 发表于 2007-10-31 09:13:42

像这样的界面难道还是通过程序一点一线地画出来吗?是不是太哪个了?通过贴图标的办法很容易实现的,而且速度、效率都很高,几乎任何一种编程语言(包括VBScript, JavaScript等)都能轻松实现。
关键是现在的图形操作系统做得好。

binglin 发表于 2007-10-31 09:18:22

当然是一点一线画的呀,上面的开关、电流都是实时数据来的。

通过贴图标的方法,缩放效果及显示出来的效果不行的。

Feeling_MCU 发表于 2007-10-31 09:19:08

什么原理啊?跟VCL控件有关系么?

binglin 发表于 2007-10-31 09:36:31

与VCL控件没关系,就是用画点画线函数画的,一楼所说的用贴图标方法,这根本就是偷工减料的做法,只不过是被现在的垃圾书所蒙骗的受害者.

第一个程序的图形文件是用DXF文件格式(没法子的事,因为是在原有系统上二次开发,也为了充份利用原有的资源,同时也保持数据的准确性,不用重复定义及制图),支持块文件.

第二个程序是我自定义的矢量图形文件格式.

favr 发表于 2007-10-31 10:16:23

本来觉得说一句就够了的,既然楼主认为我被蒙骗了,就多说一句吧,不知道楼主多大,我从93年开始写程序,而且开始几年做CAD处理,后来就很少做图形有关的了,但对图象处理还是懂的,要我写书也是DOS级的。
像你这样的程序,显示是简单的,没必要做到无级缩放,就没必要一点一画地做,一点一画不但辛苦,而且效率极低,可扩展性差。假如非得无级缩放,也是把各元素归类后做成Shape实现画图单元化(看看人家AutoCAD,CorelDRAW怎样做的),主程序通过设置缩放属性实现缩放。而用贴图的方法就能把自己从无谓的图形处理中解放出来(你不是在做图形处理软件),把精力放在功能处理/管理上,做什么就多关心什么,没必要……

binglin 发表于 2007-10-31 10:30:31

我是从80年代开始玩电脑的,第一台电脑用的是CEC-I.



你所说的用贴图的方法,前几年曾用厂家用过,与你用的方法是一样的,但无一例外的是,这些厂家都已被踢出局(玩完了),对于实时采集系统来说,使用矢量图形才是正确的做法,现在不单国内的系统,国外也一样.

这些图不单用来看,还要进行电路拓扑分析,这些应用都是必须基于矢量图才能进行,这也是为什么原来那些厂家出局的原因之一,因为它的可扩展性太差了.

还有你说的AutoCAD,我不知你有没有深入研究过,我只知道的是,人家的做法就是以点为基础类的.

第一个程序显示的DXF文件,基本那些开关、刀闸全都是块文件(DXF),在显示时要根据主文件的定义进行放大/缩小及改变角度,主文件它本身包括十几页,几十个图层,其中每页是由几个图层组合成,上面显示的是第一页。

还有,进行矢量化图形显示,并非想象中那么难,基本原理在计算机图形学中都有。

ilan2003 发表于 2007-12-15 17:13:19

我觉得楼主考话点话线 工作量是在太大了,我虽然不是很精通上位机,就protel而言,我们每次拖动一个元器件都是用点来画的吗?
我想应该是图为单位,而不是点为单位。想象别的办法,总有更加好的方法

zbhrose 发表于 2007-12-15 17:30:25

别说哪种方法好了,你会做并能快速做出符合设计要求是最重要的,

gingin 发表于 2007-12-15 18:02:10

如果在vb中,还不如直接用image控件加载wmf之类的图元文件方便,也能任意变形缩放分层
实在要复杂的,就结合flash做

huanghq2011 发表于 2011-10-21 15:38:55

都是牛人,我也想学,谁能教教我
页: [1]
查看完整版本: 为了让大家对DELPHI图形编程有所认识,发两幅编的图形应用程序的截图