PB11第11章自定义函数和结构.ppt

上传人:sh****n 文档编号:6397302 上传时间:2020-02-24 格式:PPT 页数:26 大小:902.50KB
返回 下载 相关 举报
PB11第11章自定义函数和结构.ppt_第1页
第1页 / 共26页
PB11第11章自定义函数和结构.ppt_第2页
第2页 / 共26页
PB11第11章自定义函数和结构.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
第11章自定义函数和结构 11 1创建自定义全局函数11 2创建自定义对象函数11 3外部函数11 4结构 11 1 1创建自定义全局函数 在开发环境的主窗口中 选择工具栏的New图标或选择主菜单File的子菜单New 将出现标题为 New 的窗口 图11 1定义全局函数 11 1 1创建自定义全局函数 Object页的Function 双击Function项或点击OK按钮 进入全局函数的定义 在图中 FunctionName项中输入函数名 ReturnType下拉框中选择函数返回值的类型 ArgumentName中输入函数参数名 ArgumentType下拉框中选择函数参数类型 PassBy下拉框中选择参数传递方式 11 1 1创建自定义全局函数 参数传递方式有三种 Value 值传递 将实际参数的值传递给函数参数Reference 地址传递 把实际参数的地址传递给函数 此时 如果函数修改了形式参数的值 那么实际参数的值也就被修改了 Readonly 地址传递 把实际参数的地址传递给函数 不过不允许修改参数的值 要增加或删除参数 可在图11 2中右击 出现弹出式菜单 AddParameter增加参数 InsertParameter插入参数 DeleteParameter删除参数 图11 3增加 插入 删除参数 11 1 1创建自定义全局函数 函数名及参数定义好后 在定义函数的下面窗口内编辑代码 或选择主窗口View菜单的Script子菜单 打开函数代码编辑窗口 函数返回值的类型 参数名 个数及类型可以随时更改 若函数有返回值 必须立即输入代码 即必须写一条return语句 否则产生错误 定义好的全局函数和标准函数一样使用 11 1 2修改自定义全局函数 在开发环境的主窗口中 选择工具栏的Open图标或选择主菜单File的子菜单Open 将出现标题为 Open 的窗口 在ObjectType下拉框中选择Functions 在Object中选择要打开的函数 双击或点击OK按钮 进入全局函数的定义 如前图11 4所示 可以更改函数返回值的类型 参数名 个数及类型和函数代码 11 1 3删除自定义全局函数 打开Library库管理器 打开要删除的自定义全局函数所在的PBL 选择要删除的自定义全局函数 右击 出现弹出式菜单 选择Delete将删除所选的自定义全局函数 图11 6删除自定义全局函数 11 2 1创建自定义对象函数 可以为ApplicationObject对象 窗口对象 用户对象创建自定义函数 这种函数称为对象函数 先打开要定义函数的对象 再打开Script代码编辑窗口 先选择Functions 再选择NewFunction 将出现函数定义窗口 11 2 1创建自定义对象函数 Access缺省值为 public 访问属性Access有三个选择 lpublic 在整个程序中都可访问 lprivate 只能在当前对象的程序中使用 不能在该对象的后代的程序中使用 lprotected 只能在当前对象的程序以及该对象的后代的程序中使用 对象函数的命名规则一般与对象有关 如应用对象ApplicationObject的函数一般以 af 作前缀 窗口对象Window的函数一般以 wf 作前缀 菜单对象menu的函数一般以 mf 作前缀 用户自定义对象的函数一般以 uf 作前缀 这些规则清楚地表明了函数所在对象的类型 便于程序的维护 11 2 1创建自定义对象函数 在定义函数的下面窗口内编辑代码 若函数有返回值 立即输入代码 即必须写一条return语句 否则产生错误 对象函数的返回值的类型 参数名 个数及类型能随时更改 系统会给出一个提示信息 以确认是否更改 在其它对象的程序中调用时 应在函数名前加上函数所在的对象名如w pipe wf error num 当然w pipe必须已被打开 11 2 2修改自定义对象函数 打开自定义函数所在的对象 打开Script代码编辑窗口 选择Functions 再选择要修改的函数 对象函数的返回值的类型 参数名 个数及类型都能随时更改 系统会给出一个提示信息 以确认是否更改 可以输入或更改函数代码 11 2 3删除自定义对象函数 要删除自定义对象函数 首先打开自定义函数所在的对象 然后选择主菜单View的子菜单FunctionList 图11 11列出全部函数 11 2 3删除自定义对象函数 选择FunctionList后将列出该对象的全部函数 如图11 12 右击要删除的函数 出现一个弹出式菜单 图11 13 选择Delete将删除所选的对象函数 注意 一旦选择Delete将立刻删除所选的对象函数 系统对删除操作不作提醒 在图11 13中 选择弹出式菜单中的Script 或双击所选的函数 将打开Script代码编辑窗口 以便查看与修改所选的对象函数 包括函数返回值的类型 参数名 参数个数 参数类型及函数代码等 11 3 1外部函数的定义 使用外部函数之前 必须先对其进行说明 根据作用范围分为两种类型 全局外部函数GlobalExternalFunctions和局部外部函数LocalExternalFunctions 全局外部函数可在应用程序的任何地方使用 局部外部函数只能在所定义的对象中使用 打开要定义外部函数的对象 再打开Script代码编辑窗口 选择Declare 再选择GlobalExternalFunctions或LocalExternalFunctions 最后输入函数定义 11 3 1外部函数的定义 定义外部函数时使用两种关键词 有返回值用Function 无返回值用Subroutine 用Function的格式 access FUNCTIONreturn typefunction name REF type1arg1 typenargn LIBRARYlib name用Subroutine的格式 access SUBROUTINEsub name REF type1arg1 typenargn LIBRARYlib name其中 laccess 访问级别 是可选项 只用于局部外部函数LocalExternalFunctions lreturn type 返回值类型 必须是一个合法的PowerBuilder数据类型 lfunction name和sub name 外部程序的函数名或子程序名储存在DLL库中 lREF 参数通过地址传递 ltypei 参数的数据类型 largi 参数名llib name 包含外部函数或子程序的DLL EXE文件名 11 3 2外部函数的调用 全局外部函数的使用类似于全局函数 局部外部函数的使用类似于对象函数 在其它对象的代码中使用局部外部函数时需加上函数定义所在的对象名 但在实际应用中会发现 调用外部函数经常不成功 原因可能是以下几种情况 1 32位环境调用16位DLL 2 数据类型不一致 外部函数一般是用C C 写的 有许多PowerBuilder所没有的数据类型 3 指针 PowerBuilder没有指针数据类型 4 函数名大小写错误 在PowerBuilder中不区分大小 但使用外部函数时却要区分大小写 5 外部函数所在的库文件DLL或EXE文件找不到 可能不在当前路径下 11 3 3外部函数使用实例 在Windows的控制面板中的有一个口令管理程序 用来设置和修改Windows和其它系统口令 如图11 15 如何调用这个口令管理程序呢 步骤如下 1 创建一个setpassword pbl 其应用对象名为password 再创建一个窗口w pw 窗口上放一个 设置口令 的命令按钮cb setpw 如图11 16所示 图11 15Windows口令管理窗口 图11 16调用外部函数示例 11 3 3外部函数使用实例 2 编写代码l在应用对象password的open事件中编写代码 open w pw l在窗口w pw中定义外部函数 先打开w pw的Script代码编辑窗口 再选择Declare 然后选择LocalExternalFunctions 图11 17定义外部函数 11 3 3外部函数使用实例 输入下面的代码 定义外部函数 即声明外部函数的语法格式与来源FunctionLongShellExecuteA Longhwindow StringlpOperation StringlpFile StringlpParameters StringlpDirectory LongnShowCmd Library shell32 dll FunctionLongGetDesktopWindow Library user32 dll l在 设置口令 的命令按钮cb setpw的clicked事件中输入以下代码 在PowerBuilder中调用Windows控制面板中的口令管理程序Stringcpl nameStringls nullSetNull ls null cpl name Password cpl ShellExecuteA GetDesktopWindow ls null rundll32 exe shell32 dll Control RunDLL cpl name ls null 0 调用外部函数 11 4 1定义全局结构 在开发环境的主窗口中 选择工具栏的New图标或选择主菜单File的子菜单New 将出现标题为 New 的窗口 图11 18定义全局结构 11 4 1定义全局结构 选择Object页的Structure项 双击Structure项或点击OK 进入全局结构的定义 如图11 19 在图11 19全局结构定义画板中 输入元素名 并选择元素的数据类型 右击将出现弹出式菜单 如图11 20 选择InsertRow将插入元素 选择DeleteRow将删除元素 图11 19全局结构定义画板 图11 20增加 删除结构元素 11 4 1定义全局结构 定义好结构的元素后 选择保存 输入结构名 结构名一般以 s 作前缀 图11 21保存结构 11 4 2定义对象层结构 为ApplicationObject对象 窗口对象 菜单对象 用户对象等创建结构称为对象层结构 对象层结构一般只能在该对象内使用 当该对象正在打开时 其它对象的程序可以使用该结构 打开要定义结构的对象 选择主菜单Insert的子菜单Structure 如图11 22 出现结构定义窗口 如图11 23 输入结构名 元素名及类型 按右键出现弹出式菜单 选择InsertRow将插入元素 选择DeleteRow将删除元素 对象层的结构与所在的对象一起保存 不能单独保存 图11 22定义对象层结构 图11 23结构定义画板 11 4 3使用结构 要使用某结构 应该先声明一个该结构类型的实例变量 然后再引用该结构的变量 例如 设s student是定义的一个全局结构 则在程序中使用该结构类型的代码例子为 s students1 s2 定义两个s student型的实例变量s1和s2s1 no 320108800123204 给结构s1的元素no赋值s1 name sle text 给结构s1的元素name赋值s1 math 96 给结构s1的元素math赋值s2 s1 将结构s1各元素的值赋给结构s2的对应元素 只有同一类型的结构才能这样整体赋值 对象层的结构其引用方法与全局结构基本一样 但在其它对象的代码中引用时 需指明结构所在的对象 象引用对象函数那样 例如 s stru是在窗口w main中定义的结构 在窗口中定义一个实例变量s3 s strus3 在窗口的Declare中定义InstanceVariable要在另一窗口w sub中引用s3 格式为 sle 1 text w main s3 idsle 2 text w main s3 name 11 4 4删除结构 删除全局结构打开Library库管理器 打开要删除的全局结构所在的PBL 选择要删除的全局结构 右击 出现弹出式菜单 选择Delete将删除所选的全局结构 图11 24删除全局结构 11 4 4删除结构 2 删除对象层结构打开结构所在的对象 选择主菜单View的子菜单StructureList 如图11 25 选择StructureList后将列出该对象的全部结构 右击要删除的结构 出现一个弹出式菜单 如图11 26 选择Delete将删除所选的结构 图11 25View菜单 图11 26删除对象层结构
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!