Delphi 中TMsComm控制元件使用指南
註冊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 pages、unit dir
name、Search path值(一般取預設值),最後選擇Install按鈕進行安裝。即可將MSComm
(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屬性值及其含義如下:
(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)字元