Visual Graph常见问题回答(FAQ)

12.1.何谓设计态?

回答:我们常用的工具像 C#、Delphi、VB、PB、Jbuilder等都存在设计态,也就是可视化编程。还有AutoCAD、PowerPoin t、Flash等软件也都可以看作设计态。设计态的特点是,用户可以用鼠标编辑图形。

12.2.何谓运行态?

回答:我们常用的工具像 C#、Delphi、VB、PB、Jbuilder等都存在运行态,也就是开发完成后交付使用的部分。PowerPoint、F lash等软件也都有运行态,也就是播放的部分。像AutoCAD、PhotoShop这样的专门绘图工具是没有运行态的。运行态的特点是,用户不能任意编辑图形,但图形可以响应交互事件、图形可以动作。

12.3.支持硬件板卡接口么?

回答:VG是一个图形平台,不做硬件,如果图形想与硬件通讯,要自己开发相关的程序或DLL等功能库挂入VG作为VG的外部函数或内部函数,程序员可以通过VG来调用这些功能库了。因为图形提供了完善的I/O方法,程序员可以通过它把图形和硬件等连接起来。

12.4.支持数据库么?

回答:VG是一个图形平台,不包含数据库功能,但提供了数据库接口方案,因此,如果要实现和数据库的关联关系或者把图形存储到数据库,我们可以提供解决方案。

12.5.在浏览器中能用么?

回答:在浏览器中使用和其他语言环境中没什么差别,作为插件在客户端运行,当然,在IE中开发WEB应用需要用JavaScript或者VBScript语言进行控制VG。

12.6.绘图可能擅长,做表格可能太困难吧?

回答:有人觉得,VG的表格采用文字单元拼凑的方式实现,这样画一张表格太蹩脚、太不方便了。

   VG制表其实非常容易,在整个画表过程中,和其他表格软件没什么差别。可以绘制几行几列的表格、移动线条、划线、单元合并、表格边框设定等。几分钟就可以绘制一张大表。这种表格的特殊之处在于,每个单元格都可以自由移动位置,此外,由于表格和图形混 排,因此可以插入图片、图表、棒图、饼图、曲线图等等。

    事实上,VG曾经是一种专门的表格设计软件,只是由于现在侧重图形,所以很多人根据自己的经验以为无法用它制表,因为市场上很少有矢量绘图软件支持表格,在WEB上编辑与运行表格相当方便。

12.7.动态连接线问题,请问用c#做类似与visio的动态连接线,是把线设计为一个控件呢,还是直接在面板上画线?如果直接作为控件,控件的形状很难控制,因为这跟是动态线,可以任意变形的。但一般都是由横线和竖线组成。如果直接在面板上画线,又比较难实现拖动删除等操作。问题困扰很久,望大虾们能指点设计思路!有代码参考就更感激不尽了!

回答:有现成的LinkLine可以用,详情请查看小节10.12、图形拓扑连接的使用

12.8.在vg里如何使用定时器控件 ?现想用一定时器控制图元的角度变化,如何实现?另vg里如何创建一定时器控件呢?

回答:在lib\Controls.tbl里面有个定时器元件,此元件有个OnTimer事件,或者在每个Sheet类下是有Ontimer事件的。

12.9.VG下如何调用MSSQL语句并且如何保存MSSQL数值?想用VG去显示MSSQL中的数据,却不知道如何用VG去调用MSSQL语句,并且用什么去保存MSSQL中找到的数据?

回答:vg是个图形系统,不处理数据库操作系统。但VG提供外部接口DLL扩展来数据库操作函数,但从系统设计思想看,因为数据库的连接资源非常宝贵,所以不建议VG直接数据库。

12.10.线的末端箭头问题:我在arrows.tbl添加空心三角形图元,然后在线的末端箭头属性中选中这个图元,为什么显示出来的是黑色的实心三角形啊?

回答:网纹Pattern设置成此自定义的空心三角形图元所在Sheet里面序号,详情查看小节10.10、自定义箭头与填充

12.11.线上图标问题 :我用的是试用版VG,线上图标图库文件在什么位置,我可以在线上图标图库中添加自定义图标吗?

回答:在目录 dat\lineicon.tbl 的文件里定义。

12.12.关于数组:数组是不是只能一个一个的给数组中的每个元素赋值,不能一次就给所有的元素赋值,例如,la=array(10)

la={1,2,3} ?

回答:确实只能一个一个赋值

12.13.在使用vg.Execute( "SystemParams.GraphDriver = 1" )后会在关闭ie时会异常出错,为什么?

回答:在IE关闭前必须运行恢复回来,用vg.Execute( "SystemParams.GraphDriver = 0" )

12.14.vg控件对象在web中与Div覆盖的问题 :activex对象在网页中使用时,总是显示在最上面,覆盖掉了其它内容,如何解决 ??

回答:调整位置和大小吧 ,还是这个对象的z-index值永远是最大的, 永远是在最上面的。

12.15.如何延长hint的提示时间?vg控件的hint时间大约只有2秒,如何延长hint的提示时间?没有找到hintwindow类,无法针对该类编程。

回答:用vg.Execute( "SystemParams.ShowHintDelay=5000" )设置它,默认为2秒。

12.16.vb中调用问题 我现在要用vb做一个电力上的模拟操作软件,在vb中怎么调用vg啊?比方说,在vb的窗口上绘制一个commond命令按钮, 单击此命令按钮时,就会出现vg的编辑画面?具体怎么实现啊?

回答:vgctrl1.Design( "文件名" ),详情可查看小节5.1、VB6

12.17.一个图元只有1个连接点,该连接点连接了多条line,如何从该图元得到这些连接的line?

回答:看LinksCount、Links[n],详情查看小节10.12、图形拓扑连接的使用

12.18.在C#窗体程序里怎么判断一个元件被放到了绘图区上

回答:会触发OnAddUnit事件

12.19.关于选中图形对象的问题? 目前鼠标选中图形(如rect)时,图形四周出现可调整大小的特征点,现在我想当鼠标点中图形,选中后,让图形背景色发生改变来表示当前图形背选中,而不想显示特征点框框?该怎么办?

回答:运行态实现即可,自己处理一下OnClick,设计态下不能如此 .

12.20.如果一张图 有多个圆之间要用线连接 因为圆很多都是直线不可能 要辟开那些圆 连接线能否做到能否自动弯曲 注:是根据配置文件做图 不是直接画 ?

回答:详情查看小节10.12、图形拓扑连接的使用

12.21.如何删除折线上的点?怎么用代码删除折线上的一个点,不通过DeletePoint()函数 ?

回答:先设置pointcount = pointcount - 1 ,然后依次把后面的顶点挪到前面去。 直接的方法就是自己写一个函数,调用,这样以后就很方便了。

12.22.VC中Text控件问题 :Text控件有个"运行只读"属性,在VC6中设为false没有办法在里面输入数据,同样的图在VB6中却可以正常输入,请问 该如何解决。

回答:处理premessage事件,把焦点还给vg

12.23.VC中怎么转换视图坐标? 我的VG是7.1版的,在VC中使用时发现ClientToView和ViewToClient这两个函数的参数为long型, 但帮助文档中却是一个Point结构,那么VC中应该怎样转换视图坐标?

回答:VG中的Point结构如下:

struct TDoublePoint

{

double x;

double y;

}

那个long是个指向TDoublePoint的指针。

12.24.请教Delphi中的Sheet里面的ClientToView小问题

var

Sheet1 : ISheet;

fp : TDPoint;

begin

Sheet1 := vgctrlMap.ActiveSheet;

Sheet1.ClientToView( Integer( @fp ) );

end;

我想请问BASE大侠,上面的Sheet1.ClientToView是什么意思,是将当前可视的区域赋值给@fp吗? 

回答:不是,应该这样:

var

Sheet1 : ISheet;

fp : TDPoint;

begin

Sheet1 := vgctrlMap.ActiveSheet;

fp.x := ClientWidth;

fp.y := ClientHeight;

Sheet1.ClientToView( Integer( @fp ) );

end;

//取得窗口右下角所在的视图坐标

fp.x := ClientWidth;

fp.y := ClientHeight;

Sheet1.ClientToView( Integer( @fp ) );

//是右下角

12.25.asp.net页面中用C#直接控制vg 在vs2005中,控件为何不能添加到工具栏中。是不是在vs2005中只能通过jscript或vbscript才能控制vg ? 在asp.net页面中能否利用c#语言直接控制vg?请给个例子!!!!

回答:可以先用vs2003创建画面(工具栏允许添加ActiveX) 然后用vs2005环境打开老版本的工程文件,具体为何vs2005无法把控件插入工具栏,原因可能是你的VS2005配置的原因。 vs2003中使用该控件的方法在source.zip里面有源代码示例。 c#、vb.net的例子。如果是在ASP.net下进行编程,那么只查看5.3、.net(vb.net,vc.net,C#,J#.....)和6.3.2、.net(asp.net)-中文编码问题,WEB编程下的Cilent端IE的控制只有jscript或vbscript才能控制vg。

12.26.如何删除图元的自定义属性 ?使用SetPropertyValue可以给元件添加属性,如果这个属性不需要了,用什么函数或方法来删除这个属性呢?

回答:不能删除属性。

12.27.UnitAtPoint() 问题,取得鼠标下所在的元件 如果使用UnitAtPoint()得到的是一个元件,那么如何得到该元件中位于该点的单元?

回答:1种(封装):在元件A中添加GetTheUnit如下:

public function GetTheUnit( x, y )

return UnitAtPoint( x, y, 0 )

end function

如果你用UnitAtPoint函数已经得到了这个元件A。

2种(循环):

TheUnit = 0

i = 0

while i < A.UnitCount

d = A.Units

if d.Contains( x, y ) then

    TheUnit = d

    break

end if

i = i + 1

wend

这里得到的TheUnit就是你要的。

12.28.GetFocusedText()问题 在设计态(design)下,可否使用GetFocusedText()?

如果可以,在VC++下如何使用? 如果不可以,在VC++下如何获得拥有焦点的文字单元?我在VC++ 下的代码如下: VARIANT var = pvgCtrl->Execute("d = GetFocusedText(); if d <> 0 then ShowMessage(d.Text); return d; else return 0 end if");

if(var.vt != VT_EMPTY) MessageBox("sfasfasf"); 第一行代码用于取有焦点的文字单元,并用showmessage测试; 第二行大名用于测试返回的结果;

回答:可以得到拥有焦点的文字单元,GetFocusedText()是脚本语言的函数,控件却没有。 这样就得用点办法: 例如,在vb中写下面的代码:

Set d = vgctrl1.Execute("d = GetFocusedText(); if d <> 0 then; return d; else; return ActiveSheet; end if")

If d.Type = "text" Then

    d.Text = "HHHH"

End If

12.29.请教如何将AUOTOCAD文件转换到vg格式?谢谢!

回答:VG正式版有专用CAD到VG图形的转换工具,转换效果非常好!

12.30.我是想问:静态图形控件系列 ,VG图形控件绘图版,相对于图形引擎绘图版,但不含内置脚本语言,适合开发常用绘图应用。 此版本,是开发常用绘图软件的最佳选择。例如房屋布置设计、施工绘图、简单CAD制图、绘制表格、图形建模、图形拓 扑分析、地图等。 这个的“一服务器”和“特别授权”有什么区别?

回答:"一个服务器"就是用在“一个服务器”上的意思,非一个服务器的需求,都叫特别授权。

12.31.元件全部导入问题。如果我将所有需要使用的元件全部存放到“元件.tbl”文件中,我在程序中点元件按钮,弹出一元件列表界面,这些元件存放在什么容器?也就是说,可以象线上图标那样,先出来一个元件界面,再选择需要的元件。请base大侠赐教!

回答:打开arrowdlg.tbl,找到里面的arrows.tbl,把它改为"元件.tbl",把arrowdlg.tbl另存为 " 元件选择窗口.tbl"

调用此对话盒的方式(这段代码是VG语法。 )如下:

doc = Create( Handle, "元件选择窗口.tbl", false, false )

if doc.ShowModal() = 1 then

ret = doc.ActiveSheet.Element1.GetSelectedName()

' 这个ret就是返回的元件在arrows.tbl中的序号

end if

doc.Free()

VG的变量不需要声明,直接使用,因为Create函数返回弹出窗口的视图类,所以,Doc就是视图类。

12.32.请问VG是否能够将线条、图形、元件等显示带立体效果? 看了VG自带的lib和demo中的例子,有带立体感的例子,请问VG是否能够显示出立体效果?

回答:VG没有专门立体效果的功能,需要手工制作。VG带有阴影功能

例如,一个按钮,添加阴影的方法是在背后放一个暗色无边矩形,然后把它们组合。您也可以在阴影上放一个控制点,当鼠标拖动这个控制点的时候,可以让阴影的方向和长度发生改变等等(这需要处理调控点的OnNodeChange事件)

12.33.我将*.tbl中的所有元件,图形,线条名称都导入到了一个Combox中,我选择combox中的任意个名称,怎样将选中光标 移到对应的元件、图形、线条上?

回答:BeginUpdate()

ActiveSheet.Selection.Clear()

ActiveSheet.Selection.Add( ActiveSheet.UnitByName( "某图形的名字" ) )

EndUpdate()

12.34.在vgctrl1SelectChange事件中怎么使用Sender对象? 如果使用这个Sender对象,也就是怎么控制当前选中的元件或图形的属性等信息。

回答:vgctrl1SelectChange(Sender: TObject);

beign

Tvgctrl(Sender).

end;

12.48.自定义元件loadfrombuffer 该怎么写? NewUnit.LoadFromBuffer(‘<自定义元件名1 name="????" lib="自定义元件库.tbl" bounds="654.818182,768,668.818182,797" origin="661.818182,782.5" protect="128" color="65535"/>

’); 对内建的元件上面的语句通过了,到自定义元件的时候出现错误, 应该怎么写?

回答:d = AddUnit( "element", 0, 0, 0, 0)

d.LoadFromBuffer( ................ )

 

12.36. loadfrombuff的问题 元件A

S=A.savetobuffer 然后

B=Addunit('xxx',0,0,0,0)

B.loadfrombuffer(S)

B能够重现A的形状,但不能重现A的初始位置,这是什么原因? 如何实现完全的重现(包括拓扑连接关系)?

回答:调用页面的SaveToBuffer() 和LoadFromBuffer() 页面的savetobuffer和Loadfrombuffer没问题

12.37..net颜色转换方式 ???

回答:System.Drawing.Color cl;

int n = System.Drawing.ColorTranslator.ToWin32(cl)

12.38.请问,在VC下修改系统参数类,除了vgctrl1.Execute()这个手段,还有别的吗? 用vgctrl1.Execute()这个手段实在不方便。

回答:系统参数是关系到整个系统所有文件的一些参数,例如DefaultPath(箭头、网纹、属性列表窗口等系统文件存放的路径) 如果写成形如: vgctrl1.DefaultPath = "c:\vg\dat\" 。那就表示只是针对vgctrl1这个视图控件进行设置了。以后势必还要对其他控件进行同样的设置......

12.39.请问如何用VC枚举一个页面的所有图元?

回答:例如用VC++ 6.0生成11对类库文件 ,然后用vc.net打开vc60创建的工程 ,GetActiveSheet()返回CSheet(页面类) ,页面上有UnitCount个图形 ,第一个图形是GetUnits(0)(基本图形类CUnit),做一个循环遍历就可以了。

12.40.在入门教程里, 我要是拿vc写该怎么写啊,你给出了VB的修改属性的语句如下:

set d = vgctrl1.ActiveSheet.Units( 0 )

d.SetPropertyValue "circle1.BackColor", 255

d.SetPropertyValue "circle1.Pattern", 15

我们不仅可以对元件的属性进行直接读写,而且还可以通过SetPropertyValue操作元件内部图形的属性。

回答:CUnit d = vgctrl1.GetActiveSheet().Get_Units( 0 );

d.SetPropertyValue( "circle1.BackColor", 255 );

12.41.如何获得图形元素中的文字内容?

回答:AText = AUnit.GetPropertyValue( "text1" )

AString = AUnit.GetPropertyValue( "Text1.Text" )

12.42.怎么给连接线加箭头? 我用控件在vb程序中用语句vgctrl1.NewUnit "Line", 5画了一条连接线,怎么给该线加箭头?,用程序怎么获得此对象啊?

回答:NewUnit返回值就是此对象 线条有StartArrow属性和EndArrow属性,这是起止箭头形状。

12.43.VG怎么才能导入其它作图工具绘制的矢量图?有没有现成工具将作图工具绘制的矢量图转换为VG能够使用的?

回答:选择编辑/粘贴emf图片功能、或VG的专门格式转换工具、VG.EXE的导入

12.44.请问,如何取消平移画面效果?在使用了movesheet()函数后,如何才能将鼠标、选择状态还原回初始状态(加载图元时状态)?

回答:Edit()

12.45.因为图片太大,现在想在vg中实现漫游。请问有这方面的思路与例子嘛? 请问平移画面是用movesheet() 移动图元是用什么?

回答:movesheet() 、moveselection()

12.46.在Vb程序中使用VG控件,VB程序中的变量能否与VG控件中的变量交互,例 如,在Vb中设置变量,当该变量值变化,是否能映射到VG控件中的变量?

回答:请参考source.zip包里面提供的vb例子

12.47.询问,VG帮助上Delphi的问题:FormCreate

procedure TForm1.FormCreate(Sender: TObject);

begin

   vgctrl1.Design( '' );

   vgctrl2.Run( 'C:\Documents and Settings\LG\桌面\vg\lib\电力设备.tbl' );

   vgctrl2.Library_ := True

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

    vgctrl1.NewUnit('水平刀闸',1);

end;

我就是按照帮助上原样照搬在DELPHI试验下,看能不能画出刀闸,为什么以上代码,运行过后,不能画出刀闸, 还有我从你们给的例子,运行可执行文件,也画不出东西呢, 请问应该怎么办我以上代码错误吗, 我就是想看看 怎么在自己程序上做出图

回答:不能在FormCreate里面写 ,必须在FormShow里面写,因为FormCreate的时候,窗口没有创建起来,而Design和Run函数需要窗口创建后才能运行

12.48.如何在元件的下方自动显示元件的名称.?

回答:目前无这个功能 ,代替办法:可在状态栏里面显示鼠标所在位置处的图形名称

处理OnMouseMove事件,根据ActiveSheet.UnitAtCursor( 0 )返回值就知道当前鼠标位置处的图形了。

12.49.在图形和元件直接设置连接出现的问题?我在delphi下,想在已经画好的折线的每个顶点上连接一个元件(相同的),已经把折线的linkmode:=2(是被连接者 ),每个元件中linkmode:=1(是连接者)请问如何设置连接啊,

这样设置为什么不行?

punit:=asheet.AddUnit('航路点',0,0,0,0);

punit.SetLink(aline,punit.Links[0],p0);

其中punit是元件,aline是被连接的折线?

回答:punit.setlink( aline, "dot", "p1" )

其中"dot"是元件中那个连接点的名字 "p1"是线条连接点的名字(第二个点) 请仔细阅读帮助中关于setlink的说明,详情查看小节10.12、图形拓扑连接的使用

12.50.想利用数据库中的两组数据为为点坐标使用vg画线,这些线是连起来的,数据库已连接好了,写了代码运行之后,为什么马上显示画线?

回答:首先建立一条线,然后对线上顶点进行赋值。最后调用线条的Refresh()函数

12.51.如何向一个函数中传参数? Results = Array(6)

Results.Text = ValueArray

i = 0

iUnit = 0

While i < Elements.Count

iUnit = UnitByName(Elements)

If iUnit <> 0 then    

    iUnit.Exequte("RefreshValue", CStr(Results))

End If

i = i + 1

Wend

一段脚本程序如上,其中iUnit 是从外部添加的。iUnit 中定义了一个函数RefreshValue用于刷新数据,现请问,如何在以上程序中调用此函数呢?

回答:这是在脚本中么? 如果是在脚本中,如此即可:

iUnit.RefreshValue( Results ) 如果是在控件中,需要这样: vg.Execute( "unitname.RefreshValue( results )" ) 其中unitname是图形单元的名字 results是其中的参数。

12.52.在IE中,ActiveX控件定时调用GetURL更新数据,鼠标变为沙漏形,有何解决方法?

回答:是不是数据太多了,太多数据下载的话,应该规划好数据传输,另外可用下面的办法:

 vgctrl1.Execute( "cursors[4]=cursors[0]" ) ;

12.53.你们有没有导入SVG的工具或者代码?

回答:有,你在VG.EXE里面新建一个文件,然后点击菜单->文件->导入,选SVG格式。

12.54. 在time 的ontimer中这个写

dim ran as Random

text1.Text=ran.Next(100,1000)

为什么不对?

回答:dim ran as Random是什么语法?不是VG语法,请查看VG的语法帮助说明。

12.55.我要声明一个随机数,怎么做?

回答:Random 求一个随机整数 :text1.Text=Random(100,1000) VG的内部函数

12.56. 如何动态添加元件的属性?

回答:在VG脚本里,用:元件名.setpropertyvalue('属性名',属性值)进行增加与赋值属性。返回值用:元件名.getpropertyvalue('属性名'),详情请看帮助的setpropertyvalue。

12.57. 还有,在.NET下如何实现这样的功能:vgctrl1.AddFunction "EndRunning", "41", 48, AddressOf EndRunning? 在VB下是行的,但在.NET下会出错.

回答:.NET下面的函数与变量、对像都是托管代码,是访问不了他们的内存地址,所以.NET会出错,在.net、JAVA下不能直接操作地址,所以在.net下不能使用函数AddFunction。只能把功能函数放在一个DLL中,然后用VG声明DLL外部函数,而DLL必须是按WIN32API的dll标准?

12.58. VG正式网络版里面的vgserver.exe是做在网络认证服务的吗,它的端口是多少?

回答:vgserver监听端口1024,register(“IP”)时VG.dll调用Ry4Com.dll去和vgserver联系,知道是否取得VG使用权。如果后台的服务器是在路由后面的,那么应该把路由的端口1024开放并映射到后台服务器的1024端口上来

12.58. 如何在JS里面post一段VG的XML串到后台WEB服务器?

回答:JS代码如下:_form.column_value.value = vgctrl1.SaveToBuffer();

        _form.event.value = 'save';

        _form.submit();

就可以实现网上VG编辑图形,用JS脚本上传TBL入数据库了。

12.59. 如何判断图形是否在某个矩形范围内?

回答:Touches函数是Iunit图形单元类的:

bool=Touches(double,double,double,double)

四个参数分别表示这个矩形的左边、上边、右边、下边坐标(视图坐标)。

如果图形在这个矩形框内,返回true,否则返回false。

12.59.VC里如何用AddFcnction增加类的成员函数做为内部函数

回答:VC里面声明如下: void __stdcall CallByVG1( double x );

定义如下:void  __stdcall   CReadwriteDlg::CallByVG1( double x )

{

    thisdlg->SetDlgItemInt( IDC_EDIT1, (int)x );   

};

Addfunction增加函数如下:

    void (__stdcall CReadwriteDlg::*CallByVG1)(double a);

    CallByVG1=&CReadwriteDlg::CallByVG1;

    vgctrl1.AddFunction( "CallByVG", "12", '0', *(long*)(& CallByVG1) );

VG调用如下:

CallByVG(0,Sender.Value )

由于C++类中成员函数的this指针的默认声明,所以要声明时要多一个参数this.但VC函数使用this指针时,会有些问题,所以不推荐使用类成员函数。增加内部函数时应建议使用全局函数。

  • 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,或者自行向数字签名公司购买签名服务。
Visual Graph是一套强大的交互图形开发平台,她能非常方便地建造基于图形的界面、制作各种图形元件、实现图形建模、制作监控系统、表单系统、绘图系统、流程设计等。   她提供功能非常强大的ActiveX组件,和其他流行的编程语言共同工作,极大地弥补了这些语言在图形处理方面的不足。 一、在电力、煤炭、化工、钢铁、安全监控软件开发中的应用   Visual Graph是专门处理交互图形的,与具体的业务没有关系,她提供了极其丰富的交互事件和控制命令,使程序员能够专心编写后台系统等与界面无关的部分,然后通过接口与Visual Graph联接,这样,体系结构就十分清晰,同时大大减轻了程序员的负担、降低了开发成本、节约了开发时间,软件运行效果还相当好。如果需要在网络上实现监控,还可以把Visual Graph插入网页中使用。   Visual Graph的图形分多个页面,可以制作菜单、子窗口、对话盒等,因此,常常只需要编写脚本就可以完成想要的操作。   一般的自动化图形设计软件,可以自行开发元件库,但是只能在软件限定的范围内进行,这样难免会有不足,而Visual Graph的元件库开发类似于流行编程语言(如Delphi),具有无限的可能性,任何元件都可以做。能够自定义元件甚至基本图形的属性,这是独一无二的技术。   Visual Graph的动画有三个种类,分别解决不同的需求,丰富界面的表现。   第一,整幅画面有众多动画效果,在图形页面出现或消失时启动动画。   第二,每个图形单元有众多动画效果,在图形显示或消失时启动动画。   第三,图形单元可以象演员一样按事先安排的时间序列做各种动作,可以有多个单元同时做动作,可以正向、反向和双向动作。 二、在图形管理、图形界面、图形建模、拓扑分析、小型GIS、演示教学中的应用   您也许需要管理区域所有的电杆、变压器、医院、邮局、派出所、住宅小区,鼠标点击某个地方出现某个操作,这可是一个庞大的矢量图啊,那么把Visual Graph插入您的程序中,也许完全能够满足您的要求。   Visual Graph可以开发的图形库几乎是无限的,图形和图形之间可以建立拓扑联接关系,连接的方式充分考虑到用户的需要,自由变化,连接线如果交叉,甚至会出现绕行的小圈。   Visual Graph的连接线有一个起点和一个终点,两端可有多种箭头的形状。配合强大的脚本程序可以实现任何流程计算。   您还可以用Visual Graph开发演示系统。 三、在图库开发、绘图、表格、票据设计中的应用   您也许需要绘制一幅矢量图,其中包含大量的图符,由于Visual Graph提供了无限的元件库开发能力,任何图符都可以绘制。绘图无限自由,所见所得。一般此类软件,绘好的图符在需要用鼠标缩放时,只能按比例变形,而Visual Graph则可以按任何自己想要的方式变形!   需要制作票据打印吗?Visual Graph自由的表单式表格设计和丰富的文字、表格属性能满足您要求的一切样式,Visual Graph的无限丰富的公式计算能独立满足您一切的数据处理,使打印事务与您的其他程序无关。所见所得性能,使您在电脑上绘制票据就象在纸张上一样直观。更有独一无二的特性:打印纸能够用鼠标拖动和按比例缩放,从而实现图形的相对缩放打印,如果您的表格太大,纸张上放不下,可以拖动鼠标解决。   Visual Graph的折线可以用脚本变成各种函数曲线,如正弦曲线、抛物线等,动态变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值