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;
其实绝大多数时候,你的图形文件往往只有一个页面,这时候,页面遍历不需要了。
...全文
59 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

604

社区成员

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

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