当前位置:文档之家› pdms二次开发

pdms二次开发


自定义对话框
• 对话框唯一标识 • 标题/位置/大小 • 可停靠/不可停靠 • 构造方法/初始化 • 关闭对话框
界面的消息响应
• callback • 关联命令 • 关联方法 • 参数与消息
变量
• 变量命名 • 全局变量与局部变量 • 特殊的全局变量!!ce
常用的变量类型
• Real 实数 • String 字符串 • Boolean 布尔类型(逻辑) • Position 位置 • Direction 方向
每种类型(对象)都有自己的方法(Method)
变量的查看/创建/删除
• 查看 q var • 用类型创建 !str = string() • 直接赋值 !str = ‘abc123’ • 删除 !str.delete() • 特殊的变量!!ce
• Method是对象的子程序 !strNum = ‘123’ !num = !strNum.Real() • 方法可以有参数和返回值 • 函数与方法类似, 但独立存在,且全局有效
循环语句
• Do !x from 1 to 10 by 1 $p $!x
Enddo • Do !x values ce mem
一个简单的窗体程序
SETUP FORM !!FirstForm TITLE '自定义对话框’ Text .text1 ‘点击按钮’ Button .ok ‘OK’ callback ‘!this.OK()’
Exit Define method .OK()
!!alert.message(‘OK’) Endmethod
Site /TEST_SITE Handle (2, 109)
$p节点不存在 Endhandle
连续捕捉异常
Site /TEST_SITE Handle (2, 109)
$p节点不存在 Elsehandle (2, 108)
$p /TEST_SITE节点存在, 但不是SITE类型 elsehandle none
字符串(String)与数组
• 类型与对象 • 方法(Method) • .String()
字符串(String)的常用方法
• 字符串长度 Length() • 类型转换 Real(),Position(),Boolean() • 大小写转换 LowCase(),UpCase() • 两端截取 After(str2),Before(str2),Substring(index) • 中间截取 Substring(index,nchars) • 替换 Replace(str2,str3) • 匹配 Match(str2),MatchWild(str2) • 分割(返回数组) Split() • 修剪 Trim()PDMS 二次开发培训Fra bibliotekPML开发
课程内容
• PML语言基础知识 • 通过实例, 一步步介绍PML程序编写/调试/
移植技巧 • PDMS12与.net的接口简介 • dars接口简介
PML基本概念
• Programmable Macro Language 可编程宏语 言.
• PML 脚本语言
• PML2 面向对象的编程语言. 支持窗体/菜单
制为255, 12.0可达1000 • 控件属性,有少量差异
对话框
• Form对象 • 通用的方法/属性
几个简单系统对话框
• !!alert.message() !!alert.error() !!alert.confirm()
• !!fileBrowser(!directory is STRING, !seedFile is STRING, !title is STRING, !existFlag is BOOLEAN, !callback is STRING)
如何调用窗体
• 保存文件,扩展名为pmlfrm • 放在%pdmsexe%\pmllib文件夹下 • pml rehash all • pml reload form !!FirstForm • show !!FirstForm
PML语言基础
• 变量的定义与类型 • 结构控制语句
循环/条件 • 用户自定义方法/函数 • 异常处理 • 文件I/O
$p $!x Enddo
中断 跳过
• skip [ if ... ] 跳过当此循环
• break 跳出当前最里层的循环
条件语句
• IF ... Then ... [ElseIf ... Then ... ] [Else ...] Endif
• 条件语句可以嵌套
异常处理
• 异常: 意料之中的错误 • 捕捉指定的错误
• 多行注释
$( 中间加若干行注释 $)
自定义方法/自定义函数
• 函数定义 • 参数 • 全局函数存放位置 • 调用
文件处理
• File对象 • 读打开 • 两种写入方式 • 常见的IO异常 • 文件读写的限制(行 列)
版本差异(11.6/12.0)
• 几乎完全兼容 • 字符串/控件/读文件每行长度, 11.6长度限
数组常用方法
• 元素数量 Size() • 追加元素 Append(value) • 追加数组 AppendArray(Array) • 删除全部元素 Clear() • 倒序 Invert() • 搜索 Find(value),FindFirst(value) • 和并重复项 Unique()
方法(Method)和函数(Function)
$p Site /TEST_SITE节点存在 endhandle
表达式
• 算术运算符 + -* / • 字符串连接符& • 比较运算符EQ NE LT LE GT GE • 布尔运算符NOT AND OR • 括号.
注释
• 整行注释 – 例如 --这一行是注释
• 行末注释 $* !elm = !!ce $*注释写在后面
一段简单的PML宏(Macro)
Var!subs collect ce mem Do !sub values !subs $!sub $p $!!ce.fullname enddo
如何运行宏
• 宏, 就是一系列PML命令的集合 • 执行格式为:
$m filename [param1 param2 ….]
相关主题