TO carrie4002 你好,能不能给我一个组件.我实在是没有办法.
下几个SPCOMM组件用都不能收到信息.发送时窗体上能显示发出去的信息.但接收端不能收到
同时看一下是不是我的程序有错误:非常谢谢因刚出来编程.请指教了.
QQ:58750666
EMAIL:gelanglsj@126.com
var
frmComm: TfrmComm;
i:integer;
str:string;
commflg:Boolean;
rbuf,sbuf:array[0..6] of byte;
implementation
{$R *.dfm}
//*****************************************
定义发送的数据
procedure senddata;
var
i:integer;
begin
str:='' ;
commflg:=true;
for i:=1 to 6 do
begin
if not frmComm.comm.writecommdata(@sbuf,1) then
begin
commflg:=false;
break;
end;
sleep(10);
str:=str+inttohex(sbuf,1)+'' ;
end;
str:='发送'+ str;
frmComm.memo1.lines.add(str);
frmComm.memo1.lines.add('');
if not commflg then messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;
//*****************************************
procedure TfrmComm.Button1Click(Sender: TObject);
begin
sbuf[1]:=byte($f0); //帧头
sbuf[2]:=byte($01); //命令号
sbuf[3]:=byte($ff);
sbuf[4]:=byte($ff);
sbuf[5]:=byte($01);
sbuf[6]:=byte($f0); //帧尾
senddata;//调用发送函数
end;
//接收过程
procedure TfrmComm.CommReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
var
i:integer;
begin
str:='' ;
move(buffer^,pchar(@rbuf)^,BufferLength);
for i:=1 to bufferlength do
begin
str:=str+ inttohex(rbuf,2)+'' ;
str:='接收'+str;
memo1.lines.Text:='';
memo1.lines.add(str);
memo1.lines.add('');
end;
end;