语法体系

1、变量的类型:

类型 描述
整数型
范围在-2147483648到2147483647之间。如果前面带“$”表示后面是十六进制数。如$FF等于255
小数型
范围在1.7*10-308到1.7*10+308之间,小数位数最多9位
逻辑型
True(表示真)与False(表示假)
字符串型
用单引号或双引号对表示的一串文字,文字串可以相加
数组型
Array函数创建的动态数组,每个元素可以是任何类型
点类、图形单元类、页面类、视图类、连接点类、系统参数类等等

2、变量的声明:

Visual Graph脚本语言中的变量类型都是隐含的,声明一个变量,只要直接给他赋值即可。关于变量的名称请参见名字命名法

定义 描述
N=123 定义N为整数型,且等于123
N=3.14159 定义N为小数型,且等于3.14159
N=True 定义N为逻辑型,且等于True(真)
N="合计" 定义N为文字型,且等于“合计”
A=Array(30) 定义A为数组型
A[30]="ABC" 如果数组A在声明时元素数目不足31,这里的赋值自动扩大数组的容量,并把最后一个元素定为"ABC"
N=A[30] 如果数组A在声明时元素数目不足31,报错
p=Point(x,y) 定义p为“点”类,点类有两个属性p.x和p.y都是小数
N=Text1 这里,如果Text1代表单元,可以赋值给其他变量,这里N被定义成文字单元类

3、初始变量

consts.bas脚本程序在系统启动时自动执行,其中定义的变量为初始变量,可以被整个系统各个视图各个页面所访问。当在一个视图中改变了这个变量的值,其他视图读取时也是修改后的值。

4、全局变量

在页面的Initialize事件中定义的变量可以在该页面的其他任何事件处理程序中访问。我们把它叫做全局变量。

5、局部变量

在除了Initialize外的任何其他事件中定义的变量均为局部变量,只能在事件中被访问,该事件结束后,变量即被释放。

6、运算符:

符号
名称
说明
+
加号 1、数字相加。
2、字符串相加。
-
减号 数字减法。
*
乘号 数字乘法。
/
除号 数字除法。
^
乘方号 数字乘方。
>
大于号 数字比较。
<
小于号 数字比较
>=
大于等于号 数字比较
<=
小于等于号 数字比较
=
等于号

1、数字、字符串、逻辑值、对象等比较是否相等。
2、对象可以跟0比较是否相等。
3、给变量、属性赋值,给属性赋值的时候,注意该属性不能是只读的。

<>
不等于号

1、数字、字符串、逻辑值、对象比较。
2、对象可以跟0比较是否为空。

and
逻辑与 两个逻辑值的“与”运算。只有当两个逻辑值都是true的时候,才返回true,否则返回false。逻辑与的优先级要比上面的符号小。例如2<3 and 3>4 返回false。
not
逻辑非 一个逻辑值的“非”运算。当逻辑值是false的时候,返回true,否则返回false。逻辑非的优先级要比上面的符号小。例如not 2 < 3返回false。
or
逻辑或 两个逻辑值的“或”运算。只有当两个逻辑值都是false的时候,才返回false,否则返回true。逻辑或的优先级要比上面的符号小。例如2<3 or false 返回true。
()
圆括号 1、函数中使用,例如:ShowMessage( "Hello" )
2、表达式中使用,例如:if( ( 2 < 3 ) or true )
[]
方括号 1、表示数组的元素,从0开始。例如:ar = Array(2); ar[0]=100给第一个数组元素赋值。
2、表示页面集合Sheets、单元集Units、单元组集Groups的元素,从0开始。例如Sheets[0]表示第一个页面,Units[0]表示页面上的最下面一个单元,Groups[0]表示第一个单元组。
3、表示字符串的某个字符,从0开始。例如:ptr = "Hello"; ptr[0]返回字符'H'的Ascii码。
,
逗号 在函数调用中使用,作为参数的分割。例如:str( 3.1416, 2 )返回字符串"3.14"。
;
分号 语句分割号。用于在一行中连接两条语句。例如:ar=Array(2);ar[0]=100写在一行。
''
单引号 表示字符串,可以包含双引号字符串,另外,若一个单引号在行首,表示该行是注释。
""
双引号 表示字符串,可以包含单引号字符串

7、条件表达式:

条件表达式主要用于IF、WHILE判断语句,它必须返回逻辑型的值,如:

( x < 10 ) and ( y < 10 )

not Text1.Visible

UnitCount > 0

8、条件判断语句:

判断一个表达式是否为真,若是真,执行一段代码,若不是真,执行其他代码。

if <条件表达式1> then
 条件表达式1等于true时执行的程序
else if <条件表达式2> then
 条件表达式2等于true时执行的程序
else
 条件不满足时执行的程序
end if

下面是一个Visual Graph脚本示例,判断当前鼠标位置有没有图形单元:

d=ActiveSheet.UnitAtCursor( 0 )
if d <> 0 then
ShowMessage( "当前光标位置的图形单元是:" + d.Name )
else
ShowMessage( "当前光标位置没有图形单元" )
end if

9、循环语句:

While <条件表达式>
......
Wend

如果条件表达式返回true,循环执行程序,否则跳出循环,在循环程序中使用Break关键字也可跳出循环。

下面是一个Visual Graph脚本示例,判断当前画面上是否有文字单元,如果找到,跳出循环:

i=0
While i < ActiveSheet.UnitCount
if ActiveSheet.Units[i].ClassName = "text" then
ShowMessage( "找到了文字单元!" )
break
end if
i = i + 1
Wend

10、返回语句:

从当前执行的过程中返回到调用者,

Return [返回值]

下面是两个Visual Graph脚本语言的函数示例:

private function Func1( x, y )
Return x * x + y * y
end function

private function Func2( x, y )
ShowMessage( CStr( x * x + y * y ) )
end function

当我们执行表达式:x=Func1(3,4)时,运行正常,x得到函数的返回值25。

当我们执行表达式:x=Func2(3,4)时,弹出一个对话盒,显示25,关闭这个对话盒后,报错,因Func2没有定义返回值。

11、外部函数:

extern 返回值类型=函数名(参数1的类型,参数2的类型......) in 动态库名 [name 动态库中的函数名]

参数的类型有5种:int(整数)、double(小数)、bool(逻辑型)、string(字符串)、var(其他)。返回值类型则除了这5种外,还有void(无返回)类型。

等号后面的函数名是可为Visual Graph调用的,而name后的内容是动态库中函数的真实名字。name句也可以不写,则等号后面的函数名代表在动态库中函数的名称。

下面是一个引用Windows API函数的例子:

extern int=MessageBox(int,string,string,int) in User32.dll name MessageBoxW
MessageBox(Handle,"hello",0,0)

12、系统常量

一、FontNames数组,包含当前可用的所有字体名。

二、Patterns数组,包含当前可用的所有网纹,在dat目录下的Patterns.tbl文件中,都是一个个页面,每个页面中都是一个图案。

三、Cursors数组,包含当前可用的所有光标。在dat目录下的Cursors.tbl文件中,都是一个个页面,每个页面中都是一个个32x32的位图。

四、LineTypes数组,包含当前可用的所有线型。都是用逗号分割的一系列数字。参见LineType

五、Arrows数组,包含当前可用的所有箭头。在dat目录下的Arrows.tbl文件中,都是一个个页面,每个页面上都是一些线条。

13、内部函数

函数名 描述 函数名 描述
Abs 计算数字的绝对值 Len 求字符串的长度
Acos 求数字的反余弦值 Log 求自然对数
Array 创建并返回动态数组 Mod 求两个整数的余数
Asc 求文字串首字符的ASCII值 Point 创建并返回一点类
Asin 求数值的反正弦 PointToAngle 求一个点相对另一个点的角度
At 求一个字符串在另一个字符串中的位置值 Random 求一个随机整数
Atan 求数字的反正切值 Randomize 重置随机数
Chr 把0到255的数字转换成字符 Round 数字四舍五入取整
Cos 计算数字的余弦 ShowMessage 弹出一个对话盒,显示一条信息
Create 创建一个视图窗口 Sin 求正弦值
CStr 表达式转换成字符串 Space 建立空格字符串
Date 求当前日期的字符串值 Sqr 计算数字的平方
Exp 求指数函数ex的运算结果 Sqrt 求数字的平方根
GetCursorPos 取得当前鼠标位置的屏幕坐标 Str 把小数转换成字符串
GetFocusedText 返回当前拥有焦点的文字单元 Substr 取字符串的子串
GetURL 执行一个web请求,返回这个请求的结果 Tan 求正切值
GetVersion 返回Visual Graph系统的版本号 Time 求当前时间的字符串
Hex 把整数转换成16进制字符串 Trace 弹出一条信息
Int 求小数的整数部分 Trim 消除字符串变量首尾部的空格
IsNumber 判断某字符串是否是数字 UCase 字符串转换成大写字母
IsValidName 判断字符串是否一个有效的变量名 Val 把含数字的字符串转换为数字
LCase 字符串转换成小写字母 VarType 返回指定表达式的类型

 



回首页 软件简介 应用领域 技术特点 文件说明 集成开发环境 基本操作 系统参数 语法体系 activex技术文档 视图文件 页面 单元组 图形单元 文字单元 形状单元 折线单元 元件单元?VG在Delphi中的使用方法 VG在VB中的使用方法 VG在VC中的使用方法 VG在C#中的使用 Delphi Visual Basic Visual C++ C# Visual Basic .Net调用Visual Graph的函数 调试元件 自定义Visual Graph脚本语言 在运行状态下用鼠标拖动图形 图库的使用
基于Visual Graph快速开发井下人员定位系统 如何快速开发图形仿真软件系统 自已开发组态软件(one can do it) 工程平面图制作系统 工作流与图形系统 安全监测系统联网解决方案 矿井人员考勤定位系统简介 配电技术信息管理系统 线损管理系统解决方案 DR-DTS 调度员反事故演习培训仿真系统 调度自动化系统应用软件 福州电网无功电压 AVC 控制系统 马鞍山地区电网无功电压综合优化自动控制系统 变电站图形开票系统 DR-OTS电网调度智能防误操作系统 配网调度智能模拟操作系统 基于Visual Graph的电力系统图形开发

http://www.visual-graph.com

@2004-2007 北京图王Visual Graph.版权所有.