前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

[转录]使 用 VBX 构 件 增 强 PowerBuilder 应用程序功能 - 饮水思源 饮水思源 - 文章阅读  [讨论区: database][转寄/推荐][转贴][删除][修改][设置可RE属性][上一篇][返回讨论区][下一篇][回文章][同主题列表][同主题阅读][从这里展开] 发信人: lonestar.bbs@bbs.rjgc.whu.edu.cn (平静心), 信区: database 标 题: [转录]使 用 VBX 构 件 增 强 PowerBuilder 应用程序功能 发信站: 珞珈山水 (Wed May 28 14:56:28 1997) 转信站: sjtubbs!sjtunews!ustcnews!rjgcnews!rjgcbbs ※ [本文转录自 PowerBuilder 看板] 发信人: huxin@rjgc (xinxin), 看板: PowerBuilder 标 题: 使 用 VBX 构 件 增 强 PowerBuilder 应用程序功能 发信站: 武汉大学珞珈山水站 (Fri Dec 6 13:25:09 1996) 转信站: rjgc 使 用 VBX构 件 增 强 PowerBuilder应 用 程 序 功 能 □ 上 海 谢 秀 华 张 帆 PowerBuilder中 通 过 用 户 对 象 ( user object) 来 接 纳 VBX构 件 。 所 谓 用 户 对 象 是 一 个 可 重 用 的 控 制 或 一 套 具 有 特 定 行 为 的 控 制 。 通 过 在 user object painter中 定 义 用 户 对 象 , 及 为 其 加 上 控 制 并 写 下 相 应 脚 本 , 便 可 将 用 户 对 象 放 入 应 用 窗 口 , 并 能 反 复 使 用 。 VBX用 户 对 象 与 VB相 兼 容 的 对 象 , 可 以 自 建 或 利 用 已 有 的 VBX构 件 , 并 把 其 用 于 PowerBuilder应 用 中 。 建 立 VBX用 户 对 象 一 般 按 如 下 步 骤 : ( 1 ) 选 中 user object painter; ( 2 ) 选 中 “ Select User Object” 对 话 框 的 “ New” 按 钮 ; ( 3 ) 选 中 “ VBX object” 类 型 ; ( 4 ) 选 择 包 含 所 需 VBX构 件 的 VBX文 件 ; ( 5 ) 定 义 该 构 件 的 类 名 ; ( 6 ) 选 中 “ OK” 按 钮 , 用 户 对 象 出 现 在 工 作 区 中 ; ( 7 ) 对 该 用 户 对 象 的 属 性 赋 值 ; ( 8 ) 输 入 相 应 脚 本 并 进 行 编 译 ; ( 9 ) 保 存 该 用 户 对 象 。 VBX用 户 对 象 除 了 具 有 PowerBuilder对 象 的 普 遍 事 件 ( 如 constructor、 destructor、 dragenter、 dragwithin、 dragleave、 drapdrop等 ) 、 属 性 ( 如 border、 bringtotop、 dragauto等 ) 、 方 法 ( 如 hide( ) 、 show( ) 、 move( ) 等 ) 外 , 还 根 据 该 VBX构 件 的 特 性 增 添 了 对 应 的 VBX事 件 、 属 性 , 如 将 大 家 熟 知 的 网 格 构 件 Grid. VBX定 义 为 用 户 对 象 uo- vbx- grid后 , 可 见 到 它 具 有 了 col、 cols、 row、 rows等 属 性 及 vbselchange、 vbrowcolchange等 事 件 。 VBX事 件 的 返 回 值 可 以 下 面 的 两 个 函 数 来 获 得 : ① EventParmDouble( ) 函 数 功 能 : 将 VBX标 准 或 定 制 事 件 返 回 的 数 值 放 置 在 PowerBuilder变 量 中 。 返 回 值 : 1 — 成 功 , - 1 — 失 败 ② EventParmString( ) 函 数 功 能 : 将 VBX标 准 或 定 制 事 件 返 回 的 字 符 串 放 置 在 PowerBuilder变 量 中 。 返 回 值 : 1 — 成 功 , - 1 — 失 败 通 过 对 VBX用 户 对 象 的 操 作 编 程 , 可 以 充 分 利 用 VBX构 件 的 功 能 , 增 强 PowerBuilder程 序 功 能 。 示 例 程 序 用 到 三 个 VBX文 件 : vbdia. vbx、 vslide. vbx、 switch. vbx。 分 别 定 义 为 用 户 对 象 uo- vbx- vbdia、 uo- vbx- vslide、 uo- vbx- switch。 1 . uo- vbx- vbdia提 供 一 个 四 向 按 键 控 制 , 在 该 对 象 上 的 鼠 标 点 击 将 产 生 vbclicked事 件 , 通 过 在 该 事 件 脚 本 中 调 用 EventParmDouble( ) 函 数 , 可 得 到 具 体 的 方 向 值 : 0 — 向 上 ; 1 — 向 右 ; 2 — 向 下 ; 3 — 向 左 。 2 . uo- vbx- vslide提 供 一 与 垂 直 滚 动 条 类 似 但 更 生 动 的 控 制 , 它 的 三 个 关 键 属 性 是 : max— 最 大 值 ; min— 最 小 值 ; value— 当 前 拇 指 所 在 值 。 3 . switch. vbx提 供 一 开 关 控 制 , 其 vbon属 性 用 于 设 置 开 关 的 缺 省 状 态 , 当 开 关 移 至 开 或 关 状 态 时 , 解 发 vbvbon与 vboff事 件 。 示 例 定 义 了 窗 体 w- main, 包 括 uo- vslide、 uo- switch、 uo- vbdia及 dw- cwgz等 对 象 。 dw- cwgz封 装 了 对 ODBC数 据 源 cwgz的 操 作 并 获 得 具 体 数 据 , uo- vslide的 max、 min分 别 为 雇 员 的 最 高 与 最 低 薪 水 , 其 拇 指 表 示 当 前 雇 员 薪 水 的 水 平 , uo- vbdia控 制 行 的 操 作 , 按 上 向 键 到 第 一 行 , 下 向 键 到 最 后 一 行 , 右 键 到 下 一 行 , 左 键 到 上 一 行 , uo- switch控 制 以 上 两 个 VBX对 象 的 使 用 , 当 vboff事 件 发 生 时 , 禁 止 使 用 uo- vbdia及 uo- vslide操 作 行 , 此 时 只 能 用 垂 直 滚 动 条 操 作 ; 当 vbvbon事 件 发 生 时 , 恢 复 使 用 uo- vbdia及 uo- vsldie。 应 用 的 open事 件 脚 本 如 下 : SQLCA. dbms= ″ ODBC″ SQLCA. dbparm= ″ Connectstring= ′ DSN= cwgz′ ″ CONNECT USING SQLCA; if SQLCA. SQLCode= - 1 then MessageBox( ″ 数 据 库 连 接 失 败 ″ , SQLCA. SQL ErrText, Information! ) HALT end if Open( w- main) w- main的 open事 件 脚 本 如 下 : decimal decHigh, decLow select max( salary) into: decHigh from main; select max( salary) into: decLow from main; uo- vslide. max= int( decHigh) uo- vslide. min= int( decLow) uo- switch. text= ″ 开 ″ uo- switch. vbon= TRUE uo- switch. textcolor= RGB( 1 5 5 , 0 , 1 5 5 ) dw- cwgz. SetTransObject( SQLCA) dw- cwgz. Retrieve( ) uo- vslide. value= dw- cwgz. GetItemNumber( dw- cwgz. GetRow( ) , 3 ) st- high. text= string( uo- vslide. max) st- low. text= string( uo- vslide. min) uo- vbdia的 vbclicked事 件 脚 本 如 下 : int iReturnCode double dbMessage iReturnCode= EventParmDouble( 1 , dbMessage) IF iReturncode= - 1 THEN RETURN dw- cwgz. SelectRow( 0 , FALSE) CHOOSE CASE dbMessage CASE 0 dw- cwgz. ScrollToRow( 1 ) CASE 1 dw- cwgz. ScrollNextRow( ) CASE 2 dw- cwgz. ScrollToRow( dw- cwgz. RowCount( ) ) CASE 3 dw- cwgz. ScrollPriorRow( ) END CHOOSE dw- cwgz. SelectRow( dw- cwgz. GetRow( ) , TRUE) uo- vslide. value= dw- cwgz. GetItemNumber( dw- cwgz. GetRow( ) , 3 ) uo- switch的 vbvbon事 件 脚 本 如 下 : uo- switch. text= ″ 开 ″ uo- vbdia. enabled= TRUE uo- vslide. enabled= TRUE uo- switch的 vboff事 件 脚 本 如 下 : uo- switch. text= ″ 关 ″ uo- vbdia. enabled= FALSE uo- vslide. enabled= FALSE ( 收 稿 日 期 : 1 9 9 6 年 6 月 ) --------------------------------------------------------------------------- -- 世间上最永恒的幸福 就是平凡 人生中最长久的拥有 就是珍惜 ※ 来源:·珞珈山水 bbs.rjgc.whu.edu.cn·[FROM: unknown] [转寄/推荐][转贴][删除][修改][设置可RE属性][上一篇][返回讨论区][下一篇][回文章][同主题列表][同主题阅读][从这里展开]