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 pages、unit dir name、Search 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屬性值及其含義如下:
(1)ComEvSend:值爲1,發送緩沖區的內容少于SThreshold指定的值。
(2)ComEvReceive:值爲2,接收緩沖區內字符數達到RThreshold指定的值。
(3)ComEvFrame:值爲1004,硬件檢測到幀錯誤。
(4)ComEvRxOver:值爲1008,接收緩沖區溢出。
(5)ComEvTxFull:值爲1010,發送緩沖區溢出。
(6)ComEvRxParity:值爲1009,奇偶校驗錯誤。
(7)ComEvEOF:值爲7,接收數據中出現文件尾(ASCII碼爲26)字符