说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi设计拨动、跳线开关组件

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

var

bs : TBiSwitch;

begin

bs := (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;

Cookie的建立使用-Delphi资料 Delphi 3中Cookie的建立使用 Delphi 中 串 行 通 信 的 实 现 Delphi4.0 开发WEBMAIL程序 Delphi4的Winsocket编程 Delphi4开发WEBMAIL程序 Delphi编写网络程序的安全措施 DELPHI 和 THE INTERNET Delphi开发Web Server程序如何返回图像 Delphi开发Web Server程序响应用户的输入 DELPHI与INTERNET(二) DELPHI与INTERNET(一) Delphi中串行通信的实现 Email 服务器的简单实现-Delphi资料 Internet编程技巧-Delphi资料 SMTP组件的使用方法-Delphi资料 Web Server程序开发环境的建立-Delphi资料 WEB数据库的开发-Delphi资料 Win32 行程通讯的观念与技术-Delphi资料 编程发送E-mail-Delphi资料 调用那个函数得到本机的IP-Delphi资料 动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 任何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 如何在程序中动态取得Win98的网络邻居中的工作组及计算机名-Delphi资料 动态设置DNS地址-Delphi资料 读取IE收藏夹内网址的信息-Delphi资料 改网络计算机名-Delphi资料 关于WEB应用程序的打印组件开发初探-Delphi资料 基于TELNET协议的DELPHI程序与LINUX主机通信的实现 监视POP3信箱-Delphi资料 开发WEBMAIL程序-Delphi资料 在Tcombobox中如何列出程序所连Sql数据库中所有表 关于打印机使用情况的监控问题 100分 关于delphi +oracle的查询的问题! 高手请进! 请问如何在DW中添加全局变量,并且在DW中显示改变量的值? 请教struts-config.XML参数的涵义 初学者一个水晶报表的简单问题 关于ROSE的问题,高手请进 想给EXCHANGE装个防邮件病毒软件,除了NORTON,还有什么好的软件 请教一个RMI问题! 谁有比较快的许魏的《在别处》和《那一年》的下载地址? asp.net里怎么把光标定位到一个文本框上? 较好的XML编辑器是什么?哪有下载? J2ME的困惑,来着有分! strrchr test 我动态做了个菜单,怎么得到菜单的名称? 两个问题 为什么singleton双重检查成例对Java 语言编译器不成立? 如何访问另一窗体的控件而不实例化窗体? 请教如何将CString类型转换成float类型? 请教:为什么我发的帖子我自己看不到呀? 评书大全~~~~ 登陆服务器 模态窗口中如何后退? exchange 5.5 问题?求救了,急啊 请教一个sql语句查询问题??????(多表关连) 保留贴:屁眼儿当头 请教一个写文件的问题 关于PatIndex 请教:有关分页的问题 Web Services汉字参数传递的问题 如何自动发送email? asp+sql存储过程变量赋值的问题 急! 请问在 MS-SQL Server下 如何 把getdate() 转换成为yyyy-mm-dd 恭喜两位新MVP!其他人继续努力,不经历风雨那见彩虹! 请问谁知道在哪里下在一个vss6.0?急着用!下载完成以后才让吃午饭..... 拜托了 我想做一种像身份牌的名片,我做了一个,但总觉得不真实,请高手改改 读取cookies的奇怪问题 请给出一个判断email输入是否合法的例子。 请教COM+编程问题 求用weblogic做虚拟目录,可以解析多个工程的方案 关于CHM的问题 散分!!!! 今天早上做公车丢手机,郁闷呀. 如何使一字符串变量进行计算? 调用dll函数问题,急啊!苦恼中!请赐教! 如何动态改变listview里面的图标 主线程外的另一个线程弹出的对话框怎么不是模态的? 热情讨论MySQL的全文搜索 请问DataGrid中如何确认输入的内容? 听雨的英语缩写怎么写呢? 一次函数y=kx+b的图像经过点(1,5)(6,0)求它的解析式 1+1×2+1×2×3+1×2×3×4+1×2×3×4×5+1×2×3×4×5×6…×100的值的个位数是多少? 一个三位数加上100后,得到的数与原来的数比9:5,求这个三位数 答对了给好评 一定要列方程 比较下列各式的大小.【初一数学】(1)|-2|+|3|与|-2+3|(2) |-1/2|+|-1/3|与|-1/2-1/3|(3)|0|+|-5|与|0-5| 1.通过对上述各式的比较,请你分析,归纳出当a,b为有理数时,|a|+|b|与|a+b|的大小关系.2.根据上一题 100元人民币后面四位数一样我有张100元RMB 后面4位数是7777 请问值钱吗 谁有收藏这些东西的? 尾数三位数,四位数,五位数相同的第五套一百元人民币升值吗? 80亿人民币是几位数? 《朶》字下面改成小 读什么字? (x+y)^2=18,(x-y)^2=6,分别求x^2+y^2及x^2+3xy+y^2的值 三位数除以三位数没余数的题目 100道 日本本州东海岸附近海域发生7.1级地日本福岛外海强震上修为7.1级 东京日本福岛县外海6.8级强震 气象厅发纽约油价25日继续反弹日本本州东海岸附近海域7.1级地震 北京10月购车摇号166万人参与 中日本福岛外海强震上修为7.1级 东京男子骚扰女性后入狱 出狱后强奸其妹妹日本福岛外海6.8级强震 或有海啸 小王子受洗四世同堂照全家福叙工程师开发软件可预警导弹袭击8毫米切口解除腰椎间盘突出症困扰《花甲正精彩》微电影大赏活动启动“喝水=吃药”说法不准确四川达州:3年内新建134所幼儿园刘延东、郭金龙参加2014年全国科技关爱留学生你的血压你“有数”吗全球研究理事会北京大会5月26日召开孟加拉国沉船死亡人数增至52人收获复出后首个冠军【医讯】网游之零点战天2重生成蛇之飞扬跋扈修仙外挂最后的魔装兵火影之魔之子军人光辉之血刃大唐2008吞食大陆修真邪徒西游——最後的劫难尖峰岭天池旅游尖峰岭旅游西安南堂旅游协和礼拜堂旅游鼓浪屿三一堂旅游钢琴码头旅游遵义动物园旅游朱雀山滑雪场旅游天籁·蝴蝶泉旅游渔山列岛旅游茱萸湾旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘