visual graph图形控件的文件结构

图形文件内含各种图形数据、属性、代码等等,后缀名为TBL,她是XML文件格式。
  文件采用多页面形式,所有页面共享同一个windows窗口,因此可以通过换页看到不同的画面。文件

的SheetCount属性返回页面总数,第一个页面是Sheets[0],当前工作的页面是ActiveSheet,页面有很多

特有的属性、方法和事件。
  图形对象放置在页面上,按照从下到上的顺序放置,它们的数量是UnitCount,最下面的那个图形对

象是Units[0],每个对象拥有唯一的名字Name属性。图形对象有很多属性、方法和事件。
  基本的图形对象是文字、形状或线条,此外就是图形元件,这是由基本图形对象组合而成的,当然一

些图形元件又可以组合出新的元件,我们的图形大厦就是这么建立起来了。
  从上面的描述中能够看出,我们似乎有可能把页面当作一个图形元件,因为页面和它上面的图形对象

的关系与图形元件和它内部的图形对象的关系很相似。事实上,Visual Graph的页面正好就是从图形元件

派生下来的。
  这样我们就可以顺理成章地考虑把图形文件当做元件库,它上面的每个页面被看作元件。Visual

Graph没有专门的图库格式,它的图库也就是图形文件!这种概念上的统一,将带来极大的便利,用户在

学会画图的时候,同时也就学会了如何制作图库。
  当图元被插入其他文件的页面中时,我们看到了页面(图元)的嵌套。这种嵌套带来的好处是巨大的

,因为我们有可能开发更为复杂的图形元件。例如我们可以制作一个列表框元件,它内部有一个滚动条,

而滚动条元件内部是由两个按钮元件、一个划块元件和若干矩形组成,而按钮元件又是由若干线条、矩形

组成的。每一个元件有自己特殊的属性、方法和事件,而它们组合出的新元件又有其他特殊的属性、方法

和事件。熟悉C#和Delphi的程序员都知道,Visual Graph的设计思路和它们极为相似。如果说Visual

Graph图形引擎又是一种编程语言,谁也不应该感到奇怪。
  现在再回到页面,其实页面还有两个概念,图层和单元组。
  首先是图层,默认状况下,视图只显示当前页面,但还有一种状况,可以允许在画面上同时显示多个

页面,类似一般地理信息系统中的图层概念,页面可以隐藏,也可以锁定。
  有时候,一张图上有很多各种各样的图形,为了对它们加强管理,需要进行分组,分组其实只是逻辑

上的分组,并不是真的把一些图形集中组合在一起,例如图形a和b可以是一组,同时a和c又是在另一组。

这些单元组被保存在文件中。
  当我们在画图的时候,经常要用鼠标选中某几个图形,在页面上有一个临时性的单元组,叫做选择组

,它是被选择部分的集合。选择组和单元组的唯一差别是它不能被保存到文件中。
  图形有运行(Run)和编辑(Design)两种状态,在运行状态,图形可以响应鼠标事件做出动作,而在编

辑状态,鼠标可以选择图形、拖动或者改变图形的大小。
  下面是一个典型的Visual Graph视图文件格式:
<?xml version="1.0" encoding="unicode"?>
<vg version="700" gridsize="8" range="0,0,1024,708" bordericons="7" borderstyle="3"

scrollbars="3" windowstate="0" backcolor="$FFFFFF">
<page name="page" bounds="0,0,793.700787,1122.141732" visible="false"

margin="100,100,100,100" paperwidth="2100" paperheight="2969"/>
<sheet name="sheet1" bounds="47,61,158,297" myprop="123">
<circle name="circle1" bounds="47,61,137,117" origin="92,89"/>
<element name="element1" bounds="75,152,158,297" origin="116.5,224.5">
<rect name="rect1" bounds="80,152,158,216" origin="119,184"/>
<rect name="rect2" bounds="75,233,153,297" origin="114,265"/>
</element>
<group name="Group1">
circle1
element1
</group>
</sheet>
</vg>
  大致解释一下:
  第二行表示文件版本是7版,文件中使用的栅格大小是8(栅格能够方便图形的排版和定位),工作区

的范围为1024 X 708,工作区很大的时候,拖动滚动条能够看到画面上其他部分的图形。
  第三行表示打印纸。
  第四行表示页面。
  第五行表示页面上放了一个椭圆,并且指定了这个椭圆的位置和宽、高,还有椭圆的旋转中心的位置


  第六行表示一个元件。
  第七行和第八行两个矩形是包含在上面那个元件中的。
  第十行表示当前页面上有一个单元组,这个单元组包含两个单元。
  仔细观察这个文件,它有如下特点:
  1、结构简单:
  在第一行文件头下面是视图节点vg,这里存放视图类的各种属性(包括自定义属性)。
  在页面节点里面是图形节点。如果图形是元件单元,那么这个节点里面可能还会有其他图形节点。
  2、扩充性好:
  在页面节点中,我们看到有一个myprop属性,该属性中保存了一个整数123,这是一个自定义属性,

Visual Graph系统的自定义属性和普通属性在存储和程序访问上没什么差别。所以非常便于扩充。

 <wbr></wbr>

北京图王软件:http://www.visual-graph.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、Visual Graph重要文件 1.bin\ide.exe是绘图软件,您在此可以设计图库、绘制图形文件,这个软件的所有界面都是可以修改的。 2.bin\vg.dll是ActiveX控件,在许多编程语言中使用,使用步骤如下: a)运行bin\registeractivex.bat注册控件到您的计算机,如果失败,以管理员身份运行cmd.exe,然后再运行regsvr32.exe bin\vg.dll注册(请不要把v.dll拷贝到windows\system32目录下)。 b)进入编程语言,在工具栏上安装COM组件Visual Graph ActiveX control(Visual Graph不能运行在WEB服务端,如果开发ASP.net,工具栏看不到这个) c)把控件拖动到画面中 d)在窗口的Load事件(或Show)事件中编写如下代码: vgctrl1.Design( "" )设计一个新图形文件 vgctrl1.Run( "" )运行一个新图形文件 vgctrl1.Design( vgctrl1.DefaultPath + "..\demo\电力\秦山核电站.tbl" )设计秦山核电站这张电力接线图 vgctrl1.Run( vgctrl1.DefaultPath + "..\demo\电力\秦山核电站.tbl" )是秦山核电站这张电力接线图的运行状态 接下来就可以通过程序对画面上的各种图形对象进行编程了,具体请参考入门手册 http://www.visual-graph.com/rumen.htm 3.bin\vg.chm是帮助系统 4.source目录下是csharp2010、delphi7.0、vb6.0、vc6.0使用Visual Graph ActiveX的示例 5.web目录下是互联网应用中使用的cab文件打包批处理程序 6.lib目录下是若干例子图库 7.demo目录下是若干图形文件的示例 二、发布Visual Graph ActiveX时必需要包含的文件 1 : bin\vg.dll ActiveX控件 2 : bin\funcs.dll 外部函数库 3 : bin\kernel.dll 技术核心库 4 : bin\units.dll 基础图形库 5 : bin\consts.bas 启动脚本,在此可以定义一些非常重要的全局常量 6 : bin\arrows.tbl 自定义线条箭头库 7 : bin\cursors.tbl 光标库,没有这个,鼠标移动时将看不见 8 : bin\hintwindow.tbl 提示窗口,当鼠标移动到某对象时显示的那种提示窗口 9 : bin\library.tbl 基础图形的画法,包含线条的各种画法 10: bin\page.tbl 打印设置对话盒 11: bin\controls.tbl 打印设置窗口使用的控件库,包括按钮、下拉列表框、选择框等等 12: bin\patterns.tbl 图案文件 三、如果在互联网(IE)使用,需要把用到的文件打包成CAB文件,可参考web\makecab.bat里面的内容,自行增加要打包的文件,然后运行这个批处理程序,打包后的CAB文件的使用方法参见web\design.htm,自行打包的CAB文件在IE里会被拦截,请调低IE的安全等级,允许ActiveX在IE中使用和运行脚本。如果想不被IE拦截,请使用我公司网站上提供的http://www.visual-graph.com/activex/vg.cab,或者自行向数字签名公司购买签名服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值