Visual Graph图形开发技术入门

zsdxawq 2005-04-01 10:47:59
Visual Graph图形开发技术入门(一)

Visual Graph图形文件由多个页面组成,你可以在每个页面上画上图形。页面总数是SheetCount。Sheets[0]、Sheets[1]、Sheets[2]…分别表示每个页面对象。
图形文件和图库文件是同样的文件格式(都是XML格式),当被看作图库的时候,每个页面便是一个元件。同样,当你需要编辑图库的时候,只要把它打开绘图就行了,因为这个时候,图元被看作页面,你可以在上面设计和修改它了。
统一的格式是非常重要的,因为这涉及到将来图元的嵌套,这一点类似于现在流行的编程语言,一个窗口可以被设计成将来能够嵌入其他窗口的控件,所以,Visual Graph的图元就非常类似于编程语言的控件,而页面则很像一个窗口。可以很容易设想,配合内部脚本语言,Visual Graph就可以开发任意图元了, 不管它会有多么复杂,会有多少变量、属性、事件,会产生多么复杂的动作。
当前正在编辑的页面是ActiveSheet,当你在绘图的时候,实际上就是在ActiveSheet页面上添加图形。
页面上的图形单元有UnitCount个,Units[0]、Units[1]、Units[2]…分别表示每一个图形。Units[0]在最下面,其他图形逐个往上放,这样安排。
一个页面上的每个图形有唯一的名字,这是一个32字节的字符串,名字必须符合一定的规范,例如,数字不能作为名字的开始字符等等,这些规定和你所用的编程语言对于控件名称的命名规则是差不多一样的。
基本的图形种类只有三种,它们是“文字”、“形状”、“线条”,由这几种通过各种组合最后形成了庞大的Visual Graph图形体系。页面上的图形除了这三种外,还可以包括图元。
每个图形有众多属性,例如颜色、位置、大小、线型、旋转角度、透明度等等…文字单元、形状单元、线条单元等又都有自己特有的一些属性,例如文字单元的文字内容、字体等,这些是系统支持的固定属性。
但是你还可以给图形添加自己的用户属性,例如,在一个中国地图上,给每个省(可以是图元或者多边形)添加“人口”、“面积”等属性。这些属性的存储格式、访问方式等和固定属性没什么差别。唯有一点不同,在Visual Graph ActiveX控件中,因为存在类库,可以很清楚地看到图形的固定属性,并对之编程,但是却没办法看到你添加的用户属性,例如“人口、面积”这些名义上的脚本属性,你的编程语言不可能识别它,但是你还是可以通过GetPropertyValue函数和SetPropertyValue函数读写它。
下面以Delphi语言为例,假定你添加的Visual Graph控件叫做vgctrl1,我们可以编写这样一些代码:
for I = 0 to vgctrl1.SheetCount – 1 do //遍历每个页面
begin
ASheet := vgctrl1.Sheets[I]; //得到指定序号的页面
for J = 0 to ASheet.UnitCount – 1 do //遍历页面上的每个图形
begin
AUnit := ASheet.Units[J]; //得到指定序号的图形
ShowMessage( AUnit.Name ); //显示指定图形的名字
end;
end;
其实绝大多数时候,你的图形文件往往只有一个页面,这时候,页面遍历不需要了。
...全文
62 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
一、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,或者自行向数字签名公司购买签名服务。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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