Visual Graph图形平台在delphi中的使用
第一步:安装Visual Graph
首先点击Visual Graph目录上的注册COM.bat,最后显示注册成功,其实这一步就是注册Visual Graph的ActiveX组件,他的组件名为vg.dll.用命令行批处理写上 regsvr32 vg.dll。
<wbr> 那么就要在Delphi里面调出ActiveX了。
Visual Graph的VG组件是遵循ActiveX标准的控件,很容易安装到自己的开发环境中。</wbr>
1、注册北京图王的Visual Graph的VG组件。
2、打开DELPHI,选择Component;Import ActiveX Control…菜单。
3、在Import ActiveX窗体中选择Visual Graph ActiveX Control Module选项,点击最下面的【Install…】按钮。
4、在Package窗体中点击【Compile】、【Install】按钮,退出时选择不保存。
5、在控件区的ActiveX页中出现一个Visual Graph的VG组件图标,表示安装成功。
6、直接将Cell图标拖到Form中即可使用。
7、Visual Graph的VG组件提供了几种开发环境中的Demo,可以直接照办使用,那基本就是一个样的Demo。
第二步:在Delphi窗体里面加入并调用 Visual Graph
最开始使用Visual Graph的时候是进行图形管理与控制,也就是说,画出几个库图元之后,用户可以自己加载图库,从图库里面加入图形,并对图形进行一些属性设置。
我觉得它的技术特点如下:
1)非常人性化设计,提供最为完善的绘制、修改方法,各种显示模式,随意切换。
2)与常见的绘图、文档编辑软件的操作方式相似,使用户可以在短时间内掌握绘图的使用方法。
3)丰富的一致的图元库让用户绘制图形无需从头开始,只要轻轻的拖曳即可做出漂亮的图形。
4)VG里面全部是矢量绘图,缩放自如。
5)绘图过程比用纸笔画图更简单方便和精准,图层控制等格式设置.
6)基本绘图库让用户可以通过直线、曲线、弧线、矩形和椭圆工具等元素绘制出新的图形。
7)矢量图形抗锯齿。让您绘制的图形在任何角度都保持美观。
8)无限撤销和重做功能,使用更加方便灵活。
9)可以输出为VG专用的绘图格式TBL与Bin,其他图形格式.
10)所见即所得的操作方式。
第三步:图形控制
首先拖入一个VG控件,在窗口的OnShow代码里面写上:
procedure TForm1.FormShow(Sender: TObject);
begin
<wbr> vgctrl1.Run( ExtractFilePath( Application.ExeName ) + 'hmi.tbl' );
end;
运行一张图,如下所示:</wbr>
<wbr>procedure TForm1.Button1Click(Sender: TObject);
var
</wbr><wbr> uu : IUnit;
</wbr><wbr> ret : Integer;
begin
</wbr><wbr> uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton( Sender ).Caption );
</wbr><wbr> ret := uu.GetPropertyValue( 'Value' );
//或者也可以用
//ret := vgctrl1.vg.Execute('return '+TButton(sender).Caption+'.Value');
</wbr><wbr> ShowMessage( IntToStr( ret ) );
end;</wbr>
procedure TForm1.Button3Click(Sender: TObject);
var
<wbr> uu : IUnit;
</wbr><wbr> ret : Boolean;
begin
</wbr><wbr> uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton( Sender ).Caption );
</wbr><wbr> ret := uu.GetPropertyValue( 'OnOff' );
//或者也可以用
//ret := vgctrl1.vg.Execute( 'return开关指示A1.OnOff' );
</wbr><wbr> if ret then
</wbr><wbr> </wbr><wbr> </wbr><wbr> ShowMessage( 'true' )
</wbr><wbr> else
</wbr><wbr> </wbr><wbr> </wbr><wbr> ShowMessage( 'false' );
end;</wbr>
procedure TForm1.Button4Click(Sender: TObject);
var
<wbr> uu : IUnit;
</wbr><wbr> ret : String;
begin
//首先从图形里面取得这个Iunit对象的指针,通过Isheet类里面的UnitByName函数,通过图元名字得到对象指针
uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton( Sender ).Caption );
//再从对象指针里面获取其属性,由于text是Itext类的属性,而Iunit是Itext类的父类,如果想直接用COM接口得到Text属性,那就要Itext(uu).text,才行。同样GetPropertyValue是万能的取得属性值的函数。SetPropertyValue是万能的设置属性值的函数,这两个函数是Iunit的接口函数.
</wbr><wbr> ret := uu.GetPropertyValue( 'text' );
//或者也可以用
//ret := vgctrl1.vg.Execute( 'return文字A.text' );
</wbr><wbr> ShowMessage( ret );
end;</wbr>
procedure TForm1.Button5Click(Sender: TObject);
var
<wbr> uu : IUnit;
begin
</wbr><wbr> uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton(sender).Caption );
</wbr><wbr> uu.SetPropertyValue( 'value', 6 );
end;</wbr>
procedure TForm1.Button7Click(Sender: TObject);
var
<wbr> uu : IUnit;
begin
</wbr><wbr> uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton( Sender ).Caption );
</wbr><wbr> uu.SetPropertyValue( 'OnOff', True );
end;</wbr>
procedure TForm1.Button8Click(Sender: TObject);
var
<wbr> uu : IUnit;
begin
</wbr><wbr> uu := vgctrl1.vg.ActiveSheet.UnitByName( TButton( Sender ).Caption );
</wbr><wbr> uu.SetPropertyValue( 'text', 'Visual Graph' );
end;</wbr>
<wbr></wbr>
第四步:在Delphi与Visual Graph脚本混合编程交互
这两个事例,都是运用了AddFunction函数。
<wbr></wbr>
AddFunction |
void=AddFunction(string, string, int, long) |
该函数属于高级应用,给Visual Graph脚本体系添加一个内部函数。利用此函数可以扩充脚本语言的能力。 第一个参数是函数的名字(32个字符以内); 第二个参数是参数类型,串中每一个字符代表一个参数类型 1-整数(Int) 2-小数(Double) 3-逻辑型(bool) 4-字符串(string) 比如有( Int,double )做为函数参数时,就用"12"表示。 第三个参数是返回值类型 如49('1'的ASC码)表示返回一个整数。 此外,如果没有返回值,用48('0'的ASC码)表示。 第四个参数是函数地址。 在C语言中,函数名就是函数地址。 在Pascal语言中,函数名前加“@”表示地址。 在Visual Basic语言中,AddressOf运算符能返回函数或者过程的地址。 |
<wbr></wbr>
比如:
procedure TForm1.FormShow(Sender: TObject);
begin
<wbr> vgctrl1.AddFunction( 'CallDelphiEditChange', '44', 48, Longint( @CallDelphiEditChange ) );
</wbr><wbr> vgctrl1.AddFunction( 'CallDelphiRadioButtonCli</wbr><wbr>ck', '41', 48, Longint( @CallDelphiRadioButtonCli</wbr><wbr>ck ) );
</wbr><wbr> vgctrl1.AddFunction( 'CallDelphiCheckBoxClick', '43', 48, Longint( @CallDelphiCheckBoxClick ) );
</wbr><wbr> vgctrl1.Run( ExtractFilePath( Application.ExeName ) + 'demo.tbl' );
</wbr><wbr> UseDelphiControl := true;
end;</wbr>
在Visual Graph脚本里面是这样写的:
CallDelphiCheckBoxClick(Sender.Name, Sender.Checked)
CallDelphiEditChange( Sender.Name, Sender.Value )
CallDelphiRadioButtonCli<wbr>ck(Name, 0)
那么VG脚本就能调用delphi内部的函数,
那么现在Delphi如何调用VG的函数呢?,那么要运用VG的Execute万能函数了。</wbr>
Execute |
variant=Execute(string) |
执行脚本语句,并返回一个值(如果脚本最后有return语句的话),脚本语句可以是多行的长串。 示例: Execute( "Print()" )打印视图当前页。 Execute( "ActiveSheetIndex=2" )页面翻到第三页(0是第一页)。 Execute( "Text1.Text='Hello'" )设置某文字单元的文字内容。 Execute( "Sheet2.Text1.Text='Hello'" )设置Sheet2页上某文字单元的内容。 Execute( "x=2;y=3;return x+y" )返回5。 Execute( "s='ABC';return s" )返回"ABC"。 |
<wbr></wbr>
在Delphi里面就这样使用:
Vgctrl1.Execute(“ActiveSheet. AddUnit(‘text’,1,1,0,0)”)就可以增加一个图元了。
如查在设计图形时,给页面增加了一个自定义函数。
那么用
Vgctrl1.Execute(“ActiveSheet. SelfInvoke()”),就能调用它了。
北京图王软件:http://www.visual-graph.com
分享到:
相关推荐
这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
日立VG7S变频器使用说明.pdf
这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
Version 2.85 (7 October 2009) Added: New HUD controls demo Added: Fill, Stroke, SktokeThickness, ButtonAlign property to HUDWindow Added: HudLabel, HudCheckBox, HudRadioButton, HudGrpupBox controls...
摄像机NEX-VG20E操作说明书摄像机NEX-VG20E
TOP264vg规格书_中文
AIX HACMP增加磁盘到使用的VG
声明: 仅用于研究,请勿用于商业用途,需要使用请购买正版软件。 VGScene speeds the development of all graphical application, providing: a graphical editor integrated in IDE, graphical objects, simplify ...
软件与其他浏览器软件最大的不同,VG浏览器还可以作为网络营销软件来使用,软件以可视化脚本驱动的网页自动操作工具,用户简单设置一下脚本,就可以创建出自动登录,识别验证码,自动抓取数据,自动提交数据,点击...
5.7寸三菱工业液晶屏AA057VG12 规格书pdf,5.7寸三菱工业液晶屏AA057VG12 规格书
MyPower VG2000-4 IP语音网关用户手册
VG-859中文操作手册,VG-859是一种信号产生器
富士电机生产的5000VG7S系列变频器的用户手册、使用说明书完整版96.82M
瑞传 ROBO-8777VG2A-PICMG1.0架构工业主板说明书pdf,瑞传 ROBO-8777VG2A-PICMG1.0架构工业主板说明书
华硕vg249q显示器校色文件
可视图算法(VG)代码
bin\vg.dll是ActiveX控件,在cmd.exe中,以管理员身份运行regsvr32.exe注册 bin\vg.chm是帮助系统 english\bin目录是英文版,覆盖到bin目录即可显示为英文版 english\lib目录是部分英文图库例子,和lib目录下的图库...
linux中创建pv vg lv ,多个磁盘pv(物理卷)组成存储池vg(卷组),vg又可以划分多个逻辑卷lv,在lv下可以建立文件系统
VG849的规格书,VG849是一种常用信号发生源
VG400 固体陀螺 资料 VG400 系列用户手册 英文 VG400 系列用户手册 中文翻译 VG400 中文简介 2018_10_15整理