在VFP中实现跟变式组合框及椭圆图形菜单
来源: 作者: 出处:综艺读书 2006-10-11关 键 词:foxpro
目 前,Visual FoxPro 在 数 据 库 应 用 系 统 的 开 发 中 得 到 了 广 泛 的 应 用, 系 统 的 开 发 技 巧 和 注 意 事 项 受 到 人 们 的 关 注, 本 文 叙 及 的 两 个 编 程 技 巧, 实 现 非 常 简 单,
|
|
|||
1 . 跟 变 式 组 合 框
在 实 际 应 用 系 统 中, 常 常 采 用 下 拉 列 表 框 实 现 字 符 字 段 数 据 的 规 范 化 输 入, 并 且 往 往 一 个 数 据 表 中 会 有 多 个 这 样 的 数 据 字 段, 而 对 应 这 些 字 段 的 规 范 化 数 据 则 作 为 枚 举 数 据 统 一 放 在 一 个 枚 举 数 据 表 里 进 行 管 理。 这 就 出 现 一 个 问 题, 对 应 不 同 字 段 的 枚 举 数 据 有 宽 有 窄, 为 了 存 下 所 有 这 些 数 据, 枚 举 数 据 表 的 数 据 字 段 要 足 够 的 宽, 但 对 于 目 标 数 据 库 的 控 制 字 段, 显 然 要 根 据 业 务 对 数 据 的 要 求 和 节 省 空 间 的 考 虑, 将 字 段 设 计 成 合 适 的 宽 度。 对VFP 来 说, 若 列 表 数 据 宽 度 超 出 控 制 字 段 宽 度, 则 文 本 框 不 能 显 示 选 定 数 据, 这 一 点 常 常 被 编 程 者 忽 视, 而 造 成 提 交 给 用 户 的 程 序 不 能 正 常 运 行。 其 实 只 要 在 设 计 下 拉 列 表 框 时 稍 加 几 行 代 码 就 能 解 决 这 个 问 题, 并 且 还 能 实 现 下 拉 列 表 框 和 文 本 框 自 动 跟 随 控 制 字 段 的 宽 度 发 生 变 化, 使 对 象 宽 度 始 终 与 字 段 宽 度 一 致。
假 设 控 制 数 据 表KZB.DBF 的 控 制 字 段 名 为A1, 实 际 应 用 系 统 中,A1 相 当 于 不 同 数 据 表 中 的 不 同 枚 举 字 段。 枚 举 表MJB.DBF 将 应 用 系 统 的 所 有 枚 举 数 据 集 中 管 理, 枚 举 表 最 少 包 括 两 个 字 段: 枚 举 数 据 和 枚 举 字 段 标 志, 这 里 的 枚 举 数 据 字 段 名 为CC, 枚 举 字 段 标 志 为MJBZ。 图1 为 控 制 表 字 段A1 宽 度 为10 的 情 况, 图2 为 控 制 表 字 段A1 宽 度 调 为26 的 情 况。 具 体 实 现 方 法 是: 先 在 表 单 的 数 据 环 境 中 添 加 控 制 表 和 枚 举 表, 在 组 合 框 的Init Event 方 法 中 加 入 如 下 代 码:
KD=LEN(KZB.A1)
THIS.WIDTH=31+6.3*KD
SELE MJB
CREAT CURSOR LS (CC C(KD))
APPE FROM MJB FOR MJBZ=" 测 试"
&&完成对应该字段的枚举数据筛选。
一 般 一 个 系 统 的 枚 举 字 段 的 枚 举 数 据 总 计 不 过 几 百, 在INIT 中 创 建 游 标 是 不 会 影 响 速 度 的。 在 设 计 列 表 时, 要 在 组 合 框 的RowSource 处 标 写 游 标 名LS, 这 种 功 能 的 实 现 只 需 加 写 很 少 的 代 码, 但 却 在 实 际 应 用 中 起 到 了 很 好 的 作 用。
2 . 椭 圆 图 形 菜 单
在 应 用 系 统 中, 常 用 大 按 钮 作 为 子 系 统 的 启 动 按 钮,VFP 中 的 按 钮 一 般 为 矩 形, 这 里 介 绍 一 种 制 作 椭 圆 图 形 钮 式 菜 单 的 方 法。
制 作 方 法: 先 在VFP 的 表 单 中 填 加 图 形 控 件SHAPE, 关 键 是 将SHAPE 的Curvature 属 性 值 设 为99, 这 将 使 控 件 形 状 由 矩 形 变 成 圆 或 椭 圆。 之 后, 将SHAPE 的BackStyler 设 置 为"0, 透 明",BorderWidth 属 性 设 置 为 合 适 的 宽 度, 如2~3, 使 放 在 其 底 部 的 图 形 能 很 好 的 与 其 吻 合, 椭 圆 图 形 的BorderColor 属 性 按 合 适 的 颜 色 进 行 设 置, 其 它 属 性 按 缺 省 值 设 置。 到 此, 我 们 设 计 好 了 透 明 的 椭 圆 图 形, 目 的 是 用 它 模 拟 一 个 按 钮, 实 现 点 击 椭 圆 内 部 发 生CLICK 事 件, 而 点 击 其 外 部 不 发 生CLICK 事 件。 下 一 步 是 要 在 椭 圆 图 形 的 下 面 放 置 一 个 合 适 的 图 片, 图 片 的 形 状 要 和 椭 圆 图 形 一 样, 同 样, 用 填 加 控 件 的 方 法 填 加 图 片 控 件Picture, 图 片 的BackStyler 设 置 为"0, 透 明", 再 设 置Picture 属 性 中 的 图 片 文 件 名。 调 整 图 片 的 位 置, 使 椭 圆 图 形 与 图 片 具 有 整 体 感。 为 了 模 拟 按 钮 的CLICK 动 作, 我 们 利 用 椭 圆 图 形 的MouseDown Event 方 法, 在 其 中 填 加 如 下 代 码:
LPARAMETERS nButton, nShift, nXCoord, nYCoord
H=THIS.LEFT+THIS.WIDTH/2
K=THIS.TOP+THIS.HEIGHT/2
A=THIS.WIDTH/2
B=THIS.HEIGHT/2
y1=k-b*SQRT(1-(nXCoord-h)^2/(a^2))
y2=k+b*SQRT(1-(nXCoord-h)^2/(a^2))
IF nYCoord > Y1.AND.nYCoord< Y2
THIS.PARENT.LABEL5.VISIBLE=.T.
&&点中椭圆内部
THIS.PARENT.LABEL6.VISIBLE=.F.
&&点中椭圆外部
*DO FORM SUBFORM1
&&下级表单
ELSE
THIS.PARENT.LABEL5.VISIBLE=.F.
THIS.PARENT.LABEL6.VISIBLE=.T.
ENDI
当 用 鼠 标 点 击 椭 圆 内 部 时, 表 单 底 部 显 示" 你 点 中 了 按 钮 内 部"; 点 击 椭 圆 外 部 时, 表 单 底 部 显 示" 你 点 中 了 按 钮 外 部"。 此 段 代 码 可 以 实 现 点 击 鼠 标 左 键 激 活 下 级 表 单 的 功 能, 为 保 证 表 单 操 作 的 可 靠, 最 好 将 主 表 单 的WindowType 属 性 设 为"1- 模 式"。
以 上 表 单 在 联 想P5/133 机 上 调 试 通 过。
进入讨论组讨论。
相关图文阅读
频道图文推荐
相关专题
热点标签: foxpro
最新技术文档
·用FoxWeb在网上快速发布你的FOXPRO数据库 11-03
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
站内各频道最新更新文档
站内最新制作专题
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
热门关键字导读
站内频道文章精选
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |
百度推荐,商机无限
搜索您感兴趣的内容




