📄 9925.txt
字号:
}
else //GetProcessAddress失败
return FALSE;
FreeLibrary(hinstMSHTML);
}
else //装载动态连接库失败
return FALSE;
}
****************************************************************
PB中数据窗口的两点应用技巧
人民银行咸宁地区中心支行 陈苇
----PowerBuilder是大家公认的、最佳的数据库前端开发工具之一,数据窗口
(Datawindow)是PowerBuilder中的关键技术,它能够灵活的组织数据库中的
各种数据,用户能用一个简单的查询窗口就可以得到丰富的查询结果,并且能
够对查询结果集通过程序控制,得出各种用户想得到最终结果。如果能够熟练
的运用数据窗口这一专利技术,这无疑会给开发人员和用户带来巨大的方便。
我们用PowerBuilder开发过一些应用系统,在开发过程中也积累了一些数据窗
口的应用技巧,现提供给各位,希望能够在您的开发过程中提供一定的帮助。
----在开发应用系统的时候,数据窗口中用户焦点要从一个字段转移到另外一
个字段的时候,只能用Tab键来实现,而用户通常是用回车键来改变焦点,为了
保持用户的习惯,在系统中实现良好的用户操作界面,我们就必须实现在数据
窗口中用Enter代替Tab在字段间移动。实现方法:
----1)您需要创建一个可视的用户对象(UserObject),在标准(Standard)
对象中选择DataWindow。
----2)选择Declare菜单项中的User Events子菜单,定义一个用户事件,取
用户事件名为pb_enter(事件名可任意指定),事件号(EventID)选择
pbm_dwnprocessenter(此事件号不能任意指定)。点OK按纽退回。
----3)在创建的用户对象上单击鼠标右键,选择弹出菜单上的Scripts项来编
写程序,在select event上选择你刚才定义的pb_enter事件,在编辑窗中输入
以下两条语句后退出:
Send(Handle(this),256,9,Long(0,0))
return 1
----4)给你的用户对象取一个名字后保存即可。
----在你新建窗口需要用到数据窗口对象时,你就可以把你所定义的用户对象
放入你的窗口中来代替PB提供的数据窗口对象,它就可以实现用Enter代替Tab
在字段间移动。
----我们在PowerBuilder应用程序的开发过程中,使用数据窗口时,经常会遇到
某列的数据太长,不能同时全部显示的情况.若采用自动水平滚动,操作起来又
不够简便.下面介绍一种方法,实现列数据多行显示,即实现列数据的自动折行.
具体步骤如下:
----1)打开一个数据窗口。
----2)在需设定自动折行的列上双击鼠标,弹开此列的属性窗口。
----3)选择Position标签,选中Autosize Height复选框。
----4)选择Edit标签, 不选中Auto Horz Scroll复选框。
----5)单击OK按钮,保存所做的修改。
----6)点中Detail带(写有Detail的灰色长带),单击鼠标右键,选择Properties
菜单项。
----7)选中Autosize Height复选框。
----8)单击OK按钮,保存所做的修改。
----9)保存此数据窗口。
----注意:连在一起的汉字(中间没有标点或空格分隔),系统将认为是一个单词,
不会自动进行折行。
****************************************************************
Visual FoxPro多媒体表单设计
中国地质大学资源学院信息系统研究所 韩志军
山西省地矿局地质矿产处 李效广
---- 世 界 进 入 信 息 时 代 以 来, 人 们 不 得 不 对越 来 越 多 的
信 息 进 行 处 理 与 管 理。 其 中 既 有大 量 的 文 字 信 息, 也 包
括 各 式 各 样 的 静 态 图形、 动 态 图 象 和 声 音 等 多 媒 体 信 息。
传 统 的只 能 处 理 文 本 信 息 的 数 据 库 管 理 系 统 已 不 能适 应
社 会 发 展。 当 今 的 时 代 越 来 越 需 要 能 够处 理 多 媒 体 信 息
的 数 据 库 管 理 系 统。 而MicroSoft 推 出 的Visual FoxPro 系 统,
能 充 分 利 用Windows 的 设 备 无 关 性 等 优 势, 在 多 媒 体 信 息
管 理 和 处 理 能 力 上 有 了 很 大 提 高。 它 的 出 现为 开 发 多 媒
体 程 序 提 供 了 很 大 方 便。
---- 但 从 多 媒 体 数 据 管 理 性 能 看,Visual FoxPro命 令 集 中 只
有 静 态 图 形 的 直 接 显 示 功 能, 动态 图 象 和 声 音 的 播 放 或
编 辑, 则 需 要 外 部 功能 的 支 持。 因 此, 为 了 完 成 多 媒 体 数
据 管 理,Visual FoxPro 提 供 了 调 用DLL ( 动 态 链 接 库) 的功 能,
允 许 在 应 用 程 序 中 充 分 发 挥Windows 中DLL资 源 的 优 势。 它 还
可 利 用Windows 提 供 的MCI(Media Control Interface) 多 媒 体 控 制 接
口 功 能,使 用 户 能 够 控 制 各 种 媒 体 设 备。 除 此 之 外,
Visual FoxPro 还 支 持OLE ( 对 象 的 链 接 与 嵌 入)功 能, 用 户 可
利 用 各 种OLE 控 件 进 行 多 媒 体 程序 设 计。 本 文 即 以OLE 控 件
为 例, 简 要 介 绍Visual FoxPro 中 多 媒 体 声 音 表 单 的 设 计 方 法。
一、 声 音 控 件 创 建
---- Visual FoxPro 中 有 两 种OLE 控 件, 一 种 是OLEControl(OLE 容
器 控 件), 一 种 是 OLEBoundControl(OLE 绑 定 型 容 器 控 件) 。
OLEBoundControl 主 要 用于 对Visual FoxPro 表 中General( 通 用 型)
字 段 的 控制。 而 利 用OLEControl 控 件 创 建 的 嵌 入 式OLE 对 象,
可 与 表 单 构 成 一 体。 用OLEControl 控 件 创 建有 声 表 单 的 过
程 如 下:
---- 1. 选 择OLE 容 器 控 件
---- 首 先 在“ 表 单 设 计 器” 中 打 开 需 要 填 加 声音 对 象 的
表 单, 进 而 用 鼠 标 左 键 单 击“ 表 单控 件 工 具 栏” 的 按 钮,
选 择 添 加 该 控 件。
---- 2. 选 择 添 加 的 对 象 类 型
---- 在 表 单 上, 用 鼠 标 左 键 选 择 适 当 的 区 域,建 立OLE 控 件。
进 而 在 随 后 出 现 的“Insert Object” 对 话 框 中, 选 择 要 添 加
的 对 象 类 型(Object Type) 为“ 声 音”( 添 加 其 它 类 型 的 多
媒 体 对 象 则 应 选 择 相 应 类 别)。
---- 3. 从 现 存 文 件 添 加 对 象
---- 添 加 对 象 可 以 以“Create New” 方 式 或“CreateFrom File”
方 式 进 行。 如 果 选 择 以“Create FromFile” 方 式 添 加 对 象,
单 击“Browse” 按 钮 后, 则 出 现 “ 插入 文 件” 画 面。 选 择 相
应 声 音 文 件 后, 按“ 打开” 按 钮, 即 可 完 成 从 现 存 文 件
添 加 声 音 对象 过 程。
---- 4. 创 建 新 对 象
---- 如 果 选 择 以“Create New” 方 式 添 加 对 象, 应单 击
“Insert Object” 对 话 框 的“Ok” 按 钮。 它 将启 动 声 音 编 辑
程 序, 对 新 文 件 进 行 录 音 或 编辑。 如 果 在“ 编 辑” 菜 单
上 执 行“ 插 入 文 件”项, 也 将 出 现 “ 插 入 文 件” 画面。
选 择 相 应 声 音 文 件 后, 按“ 打 开” 按 钮,即 可 插 入 现 存
文 件 进 行 编 辑。 完 成 文 件 编 辑后, 选 择 执 行“ 文 件” 菜
单 上“ 退 出” 功 能, 即完 成 创 建 新 声 音 对 象 的 过 程。
二、 声 音 控 件 执 行 方 法
---- 1. 执 行 方 法 说 明
---- 建 立 的OLE 对 象 的 一 般 可 用DoVerb 方 法 来 执行。 该 方
法 应 用 于OLE 绑 定 型 容 器 控 件 和OLE 容器 控 件, 它 可 在 指
定 的 对 象 上 执 行 一 个 相 应动 作。 其 执 行 语 法 为:
ObjectName. DoVerb([nVerb])
---- 其 中 的 ObjectName 为OLE 容 器 控 件 对 象 名 称。参 数 nVerb
指 定 在 OLE 容 器 控 件 中 对 象 要 执 行的 动 作 值。 如 果 没 有
指 定, 就 执 行 默 认 的 动作。 各 值 对 应 的 对 象 执 行 动 作
如 下:
---- 0 - 对 象 的 默 认 动 作。 一 般 为“ 播 放”
---- 1 - 激 活 要 编 辑 的 对 象。 如 果 创 建 对 象 的应 用 程 序
支 持 现 场 激 活, 就 在 OLE 容 器 控 件 中激 活 对 象。
---- 2 - 在 一 个 独 立 的 应 用 程 序 窗 口 中 打 开对 象。 如 果
所 创 建 对 象 的 应 用 程 序 支 持 现 场激 活, 就 在 对 象 自 身
的 窗 口 中 激 活 对 象。
---- 3 - 对 于 嵌 入 的 对 象, 隐 藏 创 建 对 象 的 应用 程 序。
---- 4 - 如 果 对 象 支 持 现 场 激 活, 就 以 现 场 激活 方 式 激
活 对 象 并 显 示 任 何 用 户 界 面 工 具。如 果 对 象 不 支 持 现
场 激 活, 对 象 就 不 激 活 并产 生 错 误。
---- 5 - 如 果 用 户 将 焦 点 移 到 OLE 容 器 控 件 中, 就 创 建
一 个 窗 口, 并 准 备 要 编 辑 的 对 象。如 果 对 象 不 支 持 以
鼠 标 单 击 的 方 式 激 活, 就产 生 错 误。
---- 6 - 当 激 活 要 编 辑 的 对 象 时, 用 来 放 弃 所有 记 录 的
更 改, 对 象 的 应 用 程 序 可 以 撤 消 这些 更 改。
---- 2. 命 令 按 钮 创 建 与 设 置
---- 一 般 而 言,DoVerb(0) 用 来 播 放OLE 对 象,DoVerb(1) 用
来 编 辑。 为 了 能 让 用 户 在 表 单 运行 时 操 作OLE 对 象, 首
先 需 在 该 表 单 上 创 建 相应 的“ 播 放” 与“ 编 辑” 命 令 按
钮.
---- 为 了 各 按 钮 能 执 行 相 应 功 能, 应 设 置 其CLICK 事 件
代 码。 如 果 需 要 操 作 的OLE 对 象 名为Olecontrol1, 则“ 播 放”
按 钮 的CLICK 事 件 代 码应 设 为:
ThisForm. OleControl1. DoVerb(0)
---- “ 编 辑” 按 钮 的CLICK 事 件 代 码 应 设 为:
ThisForm. OleControl1. DoVerb(1)
---- 设 置 完 成 后, 即 可 在 表 单 运 行 时 单 击 按钮 进 行 声
音“ 播 放” 或“ 编 辑”。 另 外, 如 果 将OLE 对 象 的 AutoActivate
属 性 设 置 为 2( 双 击),那 么 当 用 户 双 击 该OLE 容 器 控 件 时,
也 可 自 动激 活 该 对 象, 进 行 默 认 的 播 放 动 作。
---- 有 时 用 户 希 望 表 单 在 启 动 和 退 出 时 能 够发 出 提 示
声 音。 这 项 功 能 其 实 也 很 容 易 实 现- 只 要 在 表 单 的
Activate Event 和Dstroy Event 事 件中, 加 入 声 音 播 放 代 码:
ThisForm. OleControl1.DoVerb(0), 即 可 达 到 相 应 效 果。
---- 在Visual FoxPro 中 用OLE 控 件 进 行 多 媒 体 程 序设 计, 操 作
简 单 方 便, 但 也 有 缺 点: 它 不 能 灵活 控 制OLE 对 象, 只 能
进 行 简 单 的 播 放 与 编 辑功 能, 而 且 执 行 速 度 较 慢。 为 了
解 决 上 述 问题, 能 够 实 现 快 捷 与 多 功 能 的 多 媒 体 操 作,
则 需 要 利 用Windows 的DLL 资 源, 用MCI 进 行 多 媒 体程 序 设 计。
这 种 方 法 本 文 不 再 介 绍, 各 位 读者 不 妨 自 己 设 计, 亲 自
体 验 其 用 法 与 功 能。
****************************************************************
****************************************************************
◆有问必答◆
075. 回答请mailto: yaozheng@kali.com.cn?subject=075
各位大虾:小弟用VFP6编写程序,当程序执行到DO FORM,有时出现“致命
错误:异常代码=C0000005”,然后关闭VFP,特别是在运行对象很多的表
单上更是容易出错,请问何解?请MAIL到: mkf@21cn.com ,小弟感激涕零!
076. 回答请mailto: yaozheng@kali.com.cn?subject=076
我的问题是:在PB中怎样实现按钮的移动?
我的email:zd_yy@371.net
077. 回答请mailto: yaozheng@kali.com.cn?subject=077
请问如何在vb中将数据列表框与文本框建立联系,例如,在数据库中有一
表,包括姓名、电话号码、地址、联系方法等。现在有一列表框和数个文
本框,列表框内显示姓名,几个文本框分别显示电话号码、地址等。当我
从列表框中选择姓名时,文本框则显示相应电话号码,地址等。望能告知
方法。不胜感谢。 qy515@tjmail.com
提问信箱: yaozheng@kali.com.cn?subject=question
如果您有什么疑难问题,请发到上面的信箱里,我会及时把您的问题放在
杂志上的,希望编程高手们能不吝赐教,也希望这个栏目能成为大家交流
的场所。
****************************************************************
****************************************************************
◆编者的话◆
本刊已加入【CHINA-EZL】中国电子杂志联盟
联盟主页地址 http://china-ezl.yeah.net
◆欢迎光临我的个人主页
●《编程技术》 http://person.zj.cninfo.net/~yao
本刊的同名主页,主要以收集各类编程工具和程序源代码为主。
●《C++ Builder世界》 http://cppbuilder.soim.net
本人最新制作的个人主页,是一个探讨C++ Builder编程的专题
网站,为广大的C++ Builder爱好者搜集关于C++ Builder的一切。
◆《编程技术》订、退方法:
请到本刊主页进行订退工作 http://person.zj.cninfo.net/~yao
如果您觉得这份刊物还不错的话,欢迎把它介绍给您的朋友.
不知道您看了这期刊物有什么想法或者是意见,欢迎向我提出来.
本人感激不尽,我的联系方法如下:
E-mail:yaozheng@kali.com.cn
ICQ#: 43260473
**************************THE END**************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -