Delphi 中TMsComm控件使用指南

本文介绍了如何在Delphi中使用TMSComm控件进行串口通信,包括控件的注册、引入、使用方法以及主要属性和事件的设置。详细步骤包括将控件文件复制到系统目录,使用regsvr32注册,通过Delphi的Component菜单导入控件,并展示了控件的主要属性如CommPort、PortOpen、Settings等,以及OnComm事件的错误处理。

 注册TMsComm控件

1.Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中C:\winnt\system32\

2.Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操作安装在C盘,WIN2000):

      Regsvr32  C:\winnt\system32\Mscomm32.ocx

3.在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键

4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:

kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

        引入TMSComm控件

   1)进入Delphi 编程环境下,在菜单项中选中Component/Import ActiveX选项,出现ActiveX控件导入窗口;

   2)在其中选中Microsoft Comm Control 6.0(Version 1.1),并按需要选定Palette pagesunit dir nameSearch path值(一般取默认值),最后选择Install按钮进行安装。即可将MSComm控件引入到Delphi 中。

   3)在编程使用中,直接打开ActiveX控件,选取TMSComm控件,放在窗体上,设置其属性即可。其使用方法与Delphi其它控件相同


打开Delphi,关闭所有项目。

1.      安装OCX控件

点击菜单项:Component -> Import ActiveX Control…

进入如下界面:

 

然后点击按钮“Add..”,弹出如下界面选择Ocx文件:

 

注意:如果是DLL文件,则可能不会出现,需要将文件类型切换为所有。

选中目标文件后,该Ocx或者DLL对应的OCX控件会自动添加到列表中。

点击按钮“Install…”,弹出如下对话框,提示将控件安装到哪个控件包,系统默认是dclusr.dpk,即Delphi默认的用户自定义控件包,选择默认值即可。

 

点击按钮“OK”后,即弹出如下dclusr.dpk的编辑界面,通常系统还会提示是否继续编译dclusr.dpk,选择“Yes”。

 

如果正常编译完成,则Ocx控件会被添加到Delphi IDE 控件栏的ActiveX页面。

 

1.      卸载OCX控件

点击菜单项:Component -> Import ActiveX Control…

界面同第1步,此略。 www.2cto.com

选中需要移除的OCX控件后,点击按钮“Remove”,系统会弹出确认对话框,点击“Yes”后,即可以移除该OCX在系统中的注册信息,理论上,将该控件拖放到窗体中会出现异常信息。

但是在用户的自定义控件包中尚存留文件,需要在空白的Delphi环境中打开自定义控件包文件,该文件通常在如下路径可以找到:

c:\borland\delphi6\LIB\dclusr.dpk

打开该文件后,会弹出如下界面:

 

在上述界面中,选中需要移除的文件(可能不止一个)并点击按钮“Remove”。

然后点击按钮“Compile”对该控件包重新编译。

如果编译正常的话,会提示该控件已经移除,且会从Delphi IDE控件栏的ActiveX页面中消失。



          TMSComm控件的主要属性及事件

  

MSComm控件有27个属性,其中一部分可缺省设置为不用,常用的属性如下:

(1) CommPort:设置串行口选择。缺省值为1,选择为COM1;若赋值为2,则选择COM2

(2) PortOpen:设置通信端的状态。设置为True时,打开端口;设置为False时,关闭端口并清除接受和发送缓冲区。

(3) Settings:设置通信时的波特率、奇偶校验、停止位参数。

(4) Inputlen:设置每次从接受缓冲区读却的字符个数。缺省值为0,表示将读取接受缓冲区中全部内容;若设置值为n,表示每次将读取接受缓冲区中的n个字符。

(5) InputMode:设置接收数据的类型。

(6) InBufferCount:设置返回接受缓冲区中等待被读取的字符个数。初始化程序时,InBufferCount设置值为0,表示清除接受缓冲区。

(7) OutBufferCount:设置返回发送缓冲区中等待发送的字符个数。设置值为0时,表示清除发送缓冲区。

(8) InBufferSize:设置接受缓冲区中的长度,缺省值为1024字节。

(9) OutBufferSize:设置发送缓冲区中的长度,缺省值为512字节。

(10) Rthreshold:设置表示在触发OnComm事件之前接收缓冲区允许有的字符数。缺省值为0,表示即使接收缓冲区有字符时,也不会触发OnComm事件;设置值为n时,表示接收缓冲区每有n个字符时,就会触发一次OnComm事件。

(11) Sthreshold:设置表示在触发OnComm事件之前发送缓冲区允许有的字符数。缺省值为0,表示不触发OnComm事件;设置值为n时,表示发送缓冲区每有n个字符时,就会触发一次OnComm事件。

(12) DTREnable:设置DTR的有效性。

(13) RTSEnable:设置RTS的有效性。

(14) Input:从串口读取数据。

(15) Output:向串口写入数据。

  如果在通信过程中发生错误或事件,就会触发OnComm事件,并由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属性值来执行不同的操作。CommEvent属性值及其含义如下:

  (1ComEvSend:值为1,发送缓冲区的内容少于SThreshold指定的值。

  (2ComEvReceive:值为2,接收缓冲区内字符数达到RThreshold指定的值。

  (3ComEvFrame:值为1004,硬件检测到帧错误。

  (4ComEvRxOver:值为1008,接收缓冲区溢出。

  (5ComEvTxFull:值为1010,发送缓冲区溢出。

  (6ComEvRxParity:值为1009,奇偶校验错误。

7ComEvEOF:值为7,接收数据中出现文件尾(ASCII码为26)字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值