1、发送程序
procedure TTFCOMM.Button1Click(Sender: TObject);
var
ok:string;
i:integer;
buf:array[0..5] of byte;
begin
buf[0]:=byte($A1);
buf[1]:=byte($f0);
buf[2]:=byte($01);
buf[3]:=byte($ff);
buf[4]:=byte($ff);
buf[5]:=byte($01);
for i:=0 to 6 do
begin
if comm1.WriteCommData(@buf[i],2) then
begin
ok:=inttostr(i)+'-发送成功!';
memo1.Lines.Add(ok);
end
else memo1.Lines.Add('发送失败!');
end;
if comm1.SendDataEmpty then
begin
showmessage('无数据');
end
else
begin
showmessage('有数据');
end;
end;2、接收程序
procedure TTFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
ri:integer;
rbuf:array[0..1023] of byte;
begin
move(buffer^,pchar(@rbuf)^,bufferlength); //十六进制
for ri:=0 to bufferlength do
begin
memo1.lines.add(inttohex(rbuf[ri],2));
end;
end;大哥,大姐们求你们拉,帮我看看!通过上面的发送程序测试全部发送成功,通过comm1.SendDataEmpty测试缓寸或队列里也有数据,可是为什么接收程序没有反应啊(接收不到)!
procedure TTFCOMM.Button1Click(Sender: TObject);
var
ok:string;
i:integer;
buf:array[0..5] of byte;
begin
buf[0]:=byte($A1);
buf[1]:=byte($f0);
buf[2]:=byte($01);
buf[3]:=byte($ff);
buf[4]:=byte($ff);
buf[5]:=byte($01);
for i:=0 to 6 do
begin
if comm1.WriteCommData(@buf[i],2) then
begin
ok:=inttostr(i)+'-发送成功!';
memo1.Lines.Add(ok);
end
else memo1.Lines.Add('发送失败!');
end;
if comm1.SendDataEmpty then
begin
showmessage('无数据');
end
else
begin
showmessage('有数据');
end;
end;2、接收程序
procedure TTFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
ri:integer;
rbuf:array[0..1023] of byte;
begin
move(buffer^,pchar(@rbuf)^,bufferlength); //十六进制
for ri:=0 to bufferlength do
begin
memo1.lines.add(inttohex(rbuf[ri],2));
end;
end;大哥,大姐们求你们拉,帮我看看!通过上面的发送程序测试全部发送成功,通过comm1.SendDataEmpty测试缓寸或队列里也有数据,可是为什么接收程序没有反应啊(接收不到)!
解决方案 »
- DELPHI纯API实现的部分透明时钟
- 关于用钩子截获 $1E2 这个消息??
- 找合作伙伴(写售餐软件)
- 怎么样获取ie地址栏的url啊(急)
- 为什么我在使用LeftStr()函数的时候报错“undecleared identifier 'LeftStr'”
- 求一条统计SQL
- 哪位用过D7中开发B/S结构的新组件Intraweb,感觉太爽了,但遇到一个问题,请教一下.
- 我想实现用一个字符串打开一个文件夹但是错了这是源码帮我解决一下!
- 如何让应用程序从系统任务栏中消失
- hook住exttextout函数之后
- modified()函数不够用!如何检测一条记录从open后至update之前,有没有被修改过?
- 编写ASP组件为什么不能添加方法的
begin
comm1.StopComm;Comm2.StopComm;
Comm1.StartComm;Comm2.StartComm;
end;procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=edit1.Text ;
comm1.WriteCommData(pchar(s),length(edit1.Text));
end;procedure TForm1.Comm2ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
type ss=array[1..500] of char;
var
i:integer;
str:^ss ;
begin
str:=buffer;
for i:=1 to bufferlength do
begin
edit2.Text :=edit2.Text +str^[i]
end;
end;
以上代碼可實現簡單COM1發送COM2接收的你可變通實現你要的功能要上不能收發查看一下你的
線是否有問題