線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2219
推到 Plurk!
推到 Facebook!

如何使用SPCOMM接收資料(ReceiveData)

尚未結案
pu168888
一般會員


發表:4
回覆:2
積分:1
註冊:2004-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-22 13:53:41 IP:203.73.xxx.xxx 未訂閱
如何使用ReceiveData 不會用耶 教我好嗎??
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-24 11:31:03 IP:211.20.xxx.xxx 未訂閱
unit comm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SPComm; type TFCOMM = class(TForm) Button1: TButton; Button2: TButton; Memo1: TMemo; Button3: TButton; Comm1: TComm; Memo2: TMemo; ComboBox1: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); private { Private declarations } public { Public declarations } end; var FCOMM: TFCOMM; viewstring:string; i:integer; rbuf:array[1..99] of byte; sbuf:array[1..99] of byte; implementation {$R *.dfm} procedure TFCOMM.Button1Click(Sender: TObject); begin comm1.StopComm; //comm1.CommName := combobox1.Text; comm1.StartComm; Memo1.Lines.Clear; Memo2.Lines.Clear; end; procedure TFCOMM.Button2Click(Sender: TObject); begin comm1.StopComm; end; procedure senddata; var i:integer; commflg:boolean; begin viewstring:='' ; commflg:=true; for i:=1 to 9 do begin if not fcomm.comm1.writecommdata(@sbuf[i],1) then begin commflg:=false; break; end; //發送時位元組間的延時 //sleep(2); viewstring:=viewstring inttohex(sbuf[i],2); end; viewstring:='發送' viewstring; fcomm.memo1.lines.add(viewstring); fcomm.memo1.lines.add('' ); if not commflg then messagedlg('發送失敗 !' ,mterror,[mbyes],0); end; procedure TFCOMM.Button3Click(Sender: TObject); begin sbuf[1]:=byte($40); //幀頭 sbuf[2]:=byte($30); //命令號 sbuf[3]:=byte($31); sbuf[4]:=byte($32); sbuf[5]:=byte($36); sbuf[6]:=byte($36); sbuf[7]:=byte($37); sbuf[8]:=byte($0D); sbuf[9]:=byte($0A);//幀尾 senddata;//調用發送函數 end; procedure TFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); //接收資料段 var i:integer; begin viewstring:='' ; move(buffer^,pchar(@rbuf)^,bufferlength); for i:=1 to bufferlength do viewstring:=viewstring inttohex(rbuf[i],bufferlength) '' ; viewstring:='接收' viewstring; memo2.lines.add(viewstring); memo2.lines.add('' ); end; end. 你只要把接收資料段的程式複製過去修改一下就可以ㄌ 你test看看以上資料也是我由網路上找到的 分享比獲得更快樂
系統時間:2024-04-24 4:46:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!