1. 程式人生 > >Delphi 中TMsComm控制元件使用指南

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 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)字元