Delphi 中TMsComm控件使用指南

来源:互联网 发布:mac blu-ray player 编辑:程序博客网 时间:2024/06/03 16:41

Delphi TMsComm控件使用指南

l         注册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

 

l         引入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其它控件相同.

 

l         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)字符