首页 >> 读书频道 >> 电脑 >> 用Delphi 设 计 拨 动、 跳 线 开 关 组 件
 
· instanceof 运
· 递增 (++) 和递减
· Delphi如何实现在一
· in 运算符
· 除法运算符 (/)
· 除法赋值运算符 (/=)
· delete 运算符
· DELPHI中的消息处理
· 条件(三目)运算符 (?
· Delphi中多库关联查
· Delphi实现容器分隔
· 界面色彩渐变效果的实现
 
· 红楼梦:120回全本[清
· 常见图像文件格式详解
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

用Delphi 设 计 拨 动、 跳 线 开 关 组 件


查看有无更新版本

关键字:Delphi/Pascal 2006-9-22

 

计 算 机 测 控 系 统 中 常 使 用 各 种 计 算 机 测 试 板 卡, 在 这 些 板 卡 上 多 设 有 各
种 编 码 和 跳 线 开 关。 在 编 写 与 之 配 用 的 测 控 程 序 时, 常 需 编 写 这 些 开 关 操
作 时 的 相 应 程 序, 如 果 有 一 个 编 码 或 跳 线 开 关 组 件 是 十 分 有 帮 助 的。 以 下
是 我 用Delphi 编 写 的 一 个BiSwitch 控 件。

---- 此 控 件 由TGraphicControl 继 承 而 来, 具 有 常 用 的 属 性, 如Enabled、Tag、Hint 等, 此 外
新 增 加 了State, Color 属 性。 对 于 编 码 和 跳 线 开 关, 只 有 两 个 状 态(ON 和OFF), 在 预
先 编 辑 好 的 资 源 文 件 中 存 有 开 关 在 不 同 状 态 下 的 图 片, 当 开 关 改 变 状 态 时
将 相 应 的 图 形 显 示 出 来, 开 关 在 屏 幕 上 就 能 被“ 拨 动” 了。Color 属 性 用 于 开 关
的 背 景 与 窗 口 背 景 颜 色 配 合, 取 红 色 有 较 好 的 视 觉 效 果, 绿 色 和 黄 色 是 电
路 板 常 用 的 保 护 漆 色, 当Form 被 模 拟 成 电 路 板 时 这 会 有 所 帮 助( 通 过 修 改 资
源 文 件 可 以 得 到 你 想 要 的 开 关 颜 色 和 形 状)。

---- DIP 封 装 的 编 码 开 关 有4 位、8 位、12 位 等 规 格, 跳 线 开 关 则 可 以 任 意 数 量 使
用。 将BiSwitch 组 合 使 用 就 可 以 满 足 不 同 位 数 的 要 求, 所 附 的SWITCH 程 序 中 就
有 一 个8 位 编 码 开 关 的 例 子, 效 果 如 图。 下 面 以 双 诺 公 司 的AC1032 数 字I/O 卡 上
的SW1 开 关 说 明 使 用 方 法,SW1 用 于 设 定 测 试 卡 在 计 算 机 中 的 基 址, 其 开 关
SW1 的 位2 确 定 基 址 的 位10, 开 关 位8 确 定 基 址 的 位4, 基 址 位10 以 上 接 地, 位4 以
下 供 测 试 卡 自 用, 基 址 调 节 范 围 从210H-7F0H。 为 了 使 编 码 开 关 的 拨 动 与 基 址
对 应 起 来, 将 每 一 个BiSwitch 的Tag 属 性 赋 值 为 相 应 基 址 位 的 数 值, 如 开 关 位8 的
Tag 值 为4, 开 关 位1 未 使 用Tag 为0。 在 每 一 个BiSwitch 的OnClick 事 件 中 都 调 用doSwitch 来
响 应。 Procedure doSwitchvarbs : TBiSwitch;beginbs := (Sender as TBiSwitch);{改变开关的显示状态 }bs.State := not bs.State;{根据Tag的值确定新的基址 }if bs.Tag >0 then begin { HiByte, LoByte为窗体的私有变量作为中间变量计算基址 } if bs.Tag >7 then HiByte.SetBit( bs.Tag-8 ) else LoByte.SetBit( bs.Tag ); end;{将新的基址赋值给测试卡 }pc1032.SetAddress(HiByte.FValue * 256 + LoByte.FValue);{在窗体中显示新的地址 }lbAddress.Caption := Format('BaseAddress is %xH', [pc1032.GetAddress]);end;

用Delphi 设 计 拨 动、 跳 线 开 关 组 件

[ 1 ]
用Delphi 设 计 拨 动、 跳 线 开 关 组 件 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑