|
|
Visual Graph系统是ActiveX开发组件,供程序员在其他语言中使用图形功能。
Visual Graph ActiveX插件包含两大功能,设计态(Design)和运行态(Run),工业版不包括设计态,只包括运行态。企业版是全功能版,而工业版比较常用,且价格较低。 那么,什么是设计态呢?
什么是运行态呢?
既然工业版没有设计态,那如果购买了工业版,图形如何绘制呢? 在下载软件包中,ide.exe是永久免费使用的开发平台,您可以用这个软件绘图,或者把这个软件交付用户自行绘图。但是,工业版的图形系统ActiveX组件则不包括绘图功能,这样您无法自行开发绘图软件了,所以,购买前请了解清楚您的需求,到底是否需要绘图部分。
vgctrl1.vg.ActiveSheet.Execute( "Button1.Caption='Hello'" ); 或: vgctrl1.vg.ActiveSheet.UnitByName( "Button1" ).SetPropertyValue( "Caption", "Hello" ); 如果需要把图形上的数据传给数据库,首先用Visual Graph的COM接口把图形属性返回,然后再存储到数据库。 下面的语法可以把按钮的Caption属性返回来: s = vgctrl1.vg.ActiveSheet.Execute( "return Button1.Caption" ); 或: s = vgctrl1.vg.ActiveSheet.UnitByName( "Button1" ).GetPropertyValue( "Caption" );
无需也不要把vg.dll拷贝到windows\system32目录下,Visual Graph系统需要的文件远不止这一个文件,而是包括bin目录下很多文件。
当元件中含有旋转过的图形,就不能自动改变大小了。如果在元件的OnResize事件中编写代码,倒是可以实现任何变化。
请选择菜单debug\exception,关闭其中的LoaderLock选项即可
对,请在FormShow中执行Run或Design打开图形文件
Visual Graph ActiveX是在客户端运行的,不是在服务器端运行的,所以不可能放在服务器端运行。
首先用多边形工具绘制一个四边形(五个顶点),如下图:
然后选择菜单“线条/转换直线曲线”,在这个多边形的上下两边分别点击一次,这两条边被转换为Bezier曲线。依次用鼠标点击每个顶点,这个顶点旁会出现两个能够控制曲线方向的点,按住Shift键,移动控制点,改变曲线方向。最后这条线被画成:
用同样的方法绘制另外一条小一点的曲线,并把它和上面这条线居中对齐,然后选中这两条线,选择菜单“线条/合并线条”,这两条线变成了一条线,给这条线设置背景色为白色,前景色为黑色,填充图案为243,结果如下:
再画一个矩形,蓝色背景,把它放到这条线的下方遮起来:
这只是制作罐体的第一步,至于如何编写代码,添加属性,使得蓝色液位可以上下移动,请参考lib目录下的monitor.tbl文件中的罐体,或者查看“demo\monitor\chemical industry.tbl”文件中的罐体。
由于图库和图形文件是同一个文件,图形文件的页面相当于图库中的元件,所以在绘制图库的时候,切勿把画面上的图形再次组合起来,如果那样,在未来的元件中将包含一个元件,另外一定要把页面名设置成不含数字的纯字符。
Visual Graph采用的颜色是Windows RGB颜色,不是网页的html颜色,请注意。
在bin目录下只有controls.tbl、menu.tbl两个图库,该目录下其他文件均不是图库。
可以把文件后缀名改为xml或者txt。可能是这种tbl文件格式被服务器禁止了。
用视图类的Export函数(新版),例如在IDE.exe命令行可以执行export("e:\sss.jpg","jpeg",0,0)。
请区别下面两句:
处理OnMouseWheel滚轮事件,当Forward参数为true时,增大Zoom属性的值,否则减少Zoom属性的值即可。在“demo\power”目录下有一个power system.tbl文件,
在OnClick事件中调用视图类的UnitAtCursor函数,根据返回来的不同图形对象执行不同的操作。以下是各种编程语言中的例子: Visual Basic: dim aunit as IUnit Delphi: var Visual C++: CUnit aunit = vgctrl1.GetVg().UnitAtCursor( 0 ); System.Drawing.Color cl; 请以管理员身份进入cmd.exe安装(运行RegisterActiveX.bat)
假设一个元件Element1,内部有一个矩形Rect1,下面脚本可以把这个矩形的透明度设置成50(半透明): Element1.Rect1.Alpha = 50 在COM中使用是这样的语法: vgctrl1.vg.ActiveSheet.Execute( "Element1.Rect1.Alpha = 50" ); 或者: vgctrl1.vg.ActiveSheet.UnitByName( "Element1" ).UnitByName( "Rect1" ).Alpha = 50 或者: vgctrl1.vg.ActiveSheet.UnitByName( "Element1" ).Execute( "Rect1.Alpha = 50" )
举例如下: ar = Array() ar[0] = Array() ar[0][0] = 100 ar[0][1] = "Hello" ar[1] = true 从上面可以看出,ar数组的第一个元素又是一个数组,第二个元素是逻辑值true。 |