产品介绍

前端监控

文件格式

屏幕截屏

技术特点

监控图库

绘图图库

界面图库

图形拓扑

高度灵活

常见问题

工业监控

软件下载

关于公司

 这是可以直接使用的应用软件么?

  Visual Graph系统包含一个集成开发环境exe软件,可以制作图形,还可以导入导出svg文件等等,还包含一个ActiveX开发组件,供程序员在其他语言中使用图形功能。

 如何使用asp.net开发?

  Visual Graph系统是ActiveX开发组件,必须运行在客户端,而不是服务器端,不能用asp.net开发客户端的东西。通常的流程是,涉及图形的客户端部分用HTML网页的形式制作。用JavaScript操作画面上的图形,并和后台进行数据传输。

 什么叫设计态,什么叫运行态?

  我们常用的工具像 C#、Delphi、VB、PB等都存在设计态,也就是可视化编程。还有AutoCAD、PowerPoint等绘图软件都属于设计态。设计态的特点是,用户可以用鼠标画图、用鼠标拖拽、改变图形的位置、大小等等。



  我们常用的工具像 C#、Delphi、VB、PB等编程语言都存在运行态,也就是这些语言开发出来的程序。PowerPoint、Flash等绘图软件也都有运行态,也就是播放的部分。而像AutoCAD、PhotoShop这样的专门绘图工具是没有运行态的。运行态的特点是,用户不能任意编辑图形,但图形可以响应各种交互事件、图形可以改变属性、做出各种动作。

 在浏览器中能用么?

  在浏览器中使用和其他语言没什么差别,作为插件在客户端运行,当然,在IE中开发需要用JavaScript或者VBScript语言。下图是在运行时候的画面(插件经过安全认证,下载不超过1兆),不过,由于安全性问题,不建议在浏览器里使用插件,而是采用svg技术,Visual Graph可以非常好地绘制svg图形:

 支持数据库么?

  Visual Graph并不直接支持数据库,如果需要把数据库中的数据关联到图形属性上,需要首先从数据库中取出数据,然后再调用Visual Graph的COM接口,把数据传给图形。这种做法和任何编程语言的控件思路一样。例如,画面上有一个按钮Button1,我们要把数据库中的数据关联到这个按钮,需要首先从数据库中取出数据,然后给Button1.Caption赋值。比如:Button1.Caption = "Hello"。具体语法是:

  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" );

 Visual Graph ActiveX(vg.dll)安装问题

  无需也不要把vg.dll拷贝到windows\system32目录下,Visual Graph系统需要的文件远不止这一个文件,而是包括bin目录下很多文件。

 VS.NET 2008中遇到LoaderLock错误,无法编译通过

  请选择菜单debug\exception,关闭其中的LoaderLock选项即可

 Delphi中在FormCreate中无法打开图形文件

  对,请在FormShow中执行Run或Design打开图形文件

 在web开发时,工具栏上加不了Visual Graph ActiveX的图标

  Visual Graph ActiveX是在客户端运行的,不是在服务器端运行的,所以不可能放在服务器端运行。

 在元件制作时,无需把页面上的图形再组合起来

  由于图库和图形文件是同一个文件,图形文件的页面相当于图库中的元件,所以在绘制图库的时候,切勿把画面上的图形再次组合起来,如果那样,在未来的元件中将包含一个元件,另外一定要把页面名设置成不含数字的纯字符。

 哪些是可用的图库?

  在bin目录下只有controls.tbl、menu.tbl、library.tbl三个图库,该目录下其他文件均不是图库。

 无法打开WEB服务器端的tbl图形文件

  可以把文件后缀名改为xml或者txt。可能是这种tbl文件格式被服务器禁止了。

 在VC和Delphi中文字单元无法输入文字?

  需要自己处理一下PreTranslateMessage这个过程,类似地,在Delphi中需要处理一下CMDialogKey事件,关于Delphi中处理键盘移动的例子在下载区也有源码例子。其他各种语言或环境均不存在这些问题。

 VC6无法设置断点调试程序,Visual Graph使用中也常出现莫名其妙的错误

  请关闭360安全卫士。

 如何把图形保存成jpg格式?

  用视图类的Export函数,例如在IDE.exe命令行可以执行export("e:\sss.jpg","jpeg",0,0)。

 如何区别在不同图形上的点击,使程序执行不同的操作?

  在OnClick事件中调用视图类的UnitAtCursor函数,根据返回来的不同图形对象执行不同的操作。以下是各种编程语言中的例子:

  Visual Basic:

dim aunit as IUnit
set aunit = vgctrl1.vg.UnitAtCursor( nothing )
if not ( aunit is nothing ) then
MsgBox aunit.Name
end if

  Delphi:

var
aunit : IUnit;
begin
aunit := vgctrl1.vg.UnitAtCursor( nil );
if ( aunit <> nil ) then
ShowMessage( aunit.Name );
end if
end;

  Visual C++:

CUnit aunit = vgctrl1.GetVg().UnitAtCursor( 0 );
if ( aunit )
ShowMessage( aunit.GetName() );

 在Windows7的32位操作系统无法安装

请以管理员身份进入cmd.exe安装(运行RegisterActiveX.bat)

 如何操作元件内部某个图形的属性?

  假设一个元件Element1,内部有一个矩形Rect1,下面脚本可以把这个矩形的透明度设置成0.5(半透明):

  Element1.Rect1.Opacity = 0.5

  在COM中使用是这样的语法:

  vgctrl1.vg.ActiveSheet.Execute( "Element1.Rect1.Opacity = 0.5" );

  或者:

  vgctrl1.vg.ActiveSheet.UnitByName( "Element1" ).UnitByName( "Rect1" ).Opacity = 0.5

  或者:

  vgctrl1.vg.ActiveSheet.UnitByName( "Element1" ).Execute( "Rect1.Opacity = 0.5" )

 如何使用二维数组?

  举例如下:

  ar = Array()

  ar[0] = Array()

  ar[0][0] = 100

  ar[0][1] = "Hello"

  ar[1] = true

  从上面可以看出,ar数组的第一个元素又是一个数组,第二个元素是逻辑值true。

北京图王软件开发有限公司
开户:中国光大银行北京西直门支行 账号:35150188000021232
QQ:25399094 短信预约:13522481256(请勿直拨)
京ICP备05080723号