引入TMSComm控件 (1)進(jìn)入Delphi 編程環(huán)境下,在菜單項(xiàng)中選中Component/Import ActiveX選項(xiàng),出現(xiàn)ActiveX控件導(dǎo)入窗口; (2)在其中選中Microsoft Comm CONTROL 6.0(Version 1.1),并按需要選定Palette pages、unit dir NAME、Search path值(一般取默認(rèn)值),最后選擇 INSTALL按鈕進(jìn)行安裝。即可將MSComm控件引入到Delphi 中。 (3)在編程使用中,直接打開(kāi)ActiveX控件,選取TMSComm控件,放在窗體上,設(shè)置其屬性即可。其使用方法與Delphi其它控件相同. 編譯添加后在控件ACTIVEX頁(yè)找到了電話機(jī)式的控件符號(hào),但是雙擊后,彈出如下錯(cuò)誤提示:License information for TMSComm not found .You can not use contorl in design mode 注冊(cè)TMsComm控件 1.將Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三個(gè)文件復(fù)制到系統(tǒng)文件夾中C:\winnt\system32\。 2.用Windows下的注冊(cè)工具regsvr32注冊(cè)該OCX控件,點(diǎn)擊“開(kāi)始”->"運(yùn)行",再在中填入(假設(shè)操作安裝在C盤(pán),WIN2000): Regsvr32 C:\winnt\system32\Mscomm32.ocx 3.在注冊(cè)表中手工新建一個(gè)主鍵項(xiàng):先在點(diǎn)擊“開(kāi)始”->"運(yùn)行",再在中填入regedit命令打開(kāi)注冊(cè)表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主鍵 4250E830-6AC2-11cf-8ADB-00AA00C00905 并將內(nèi)容設(shè)置為: kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
一、MSComm控件的主要屬性及事件 ?。?)CommPort:設(shè)置或返回串行端口號(hào),缺省值1。 ?。?)Setting:設(shè)置或返回串口通信參數(shù),格式為“波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,停止位”。例如:MSComm1.Setting:=′9600,n,8,1′ ?。?)PortOpen:打開(kāi)或關(guān)閉串行端口,格式為:MSComm1.PortOpen:={True|False} (4)InBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)。 ?。?)InBufferCount:返回接收緩沖區(qū)內(nèi)等待讀取的字節(jié)數(shù),可通過(guò)設(shè)置該屬性為0來(lái)清空接收緩沖區(qū)。 ?。?)RThreshold:該屬性為一閥值,它確定當(dāng)接收緩沖區(qū)內(nèi)的字節(jié)個(gè)數(shù)達(dá)到或超過(guò)該值后就產(chǎn)生代碼為ComEvReceive的OnComm事件。 ?。?)SThreshold:該屬性為一閥值,它確定當(dāng)發(fā)送緩沖區(qū)內(nèi)的字節(jié)個(gè)數(shù)少于該值后就產(chǎn)生代碼為ComEvSend的OnComm事件。 ?。?)InputLen:設(shè)置或返回接收緩沖區(qū)內(nèi)用Input讀入的字節(jié)數(shù),設(shè)置該屬性為0表示Input讀取整個(gè)緩沖區(qū)的內(nèi)容。 (9)Input:從接收緩沖區(qū)讀取一串字符。 ?。?0)OutBufferSize:設(shè)置或返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)。 (11)OutBufferCount:返回發(fā)送緩沖區(qū)內(nèi)等待發(fā)送的字節(jié)數(shù),可通過(guò)設(shè)置該屬性為0來(lái)清空緩沖區(qū)。 ?。?2)OutPut:向發(fā)送緩沖區(qū)傳送一串字符。 如果在通信過(guò)程中發(fā)生錯(cuò)誤或事件,就會(huì)觸發(fā)OnComm事件,并由CommEvent屬性代碼反映錯(cuò)誤類(lèi)型,在通信程序的設(shè)計(jì)中可根據(jù)該屬性值來(lái)執(zhí)行不同的操作。CommEvent屬性值及其含義如下: ?。?)ComEvSend:值為1,發(fā)送緩沖區(qū)的內(nèi)容少于SThreshold指定的值。 ?。?)ComEvReceive:值為2,接收緩沖區(qū)內(nèi)字符數(shù)達(dá)到RThreshold指定的值。 (3)ComEvFrame:值為1004,硬件檢測(cè)到幀錯(cuò)誤。 (4)ComEvRxOver:值為1008,接收緩沖區(qū)溢出。 ?。?)ComEvTxFull:值為1010,發(fā)送緩沖區(qū)溢出。 ?。?)ComEvRxParity:值為1009,奇偶校驗(yàn)錯(cuò)誤。 ?。?)ComEvEOF:值為7,接收數(shù)據(jù)中出現(xiàn)文件尾(ASCII碼為26)字符
|