spcomm 组件的数据接收,如何做成基于过程接收而不是基于事件接收 spcomm 组件的数据接收,如何做成基于过程接收而不是基于事件接收,谁有好的处理方法,或者给出一个mmscomm组建的使用例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没试过,要不改spcomm的源码,要不就换控件,至于例子,网上很多,哪个控件的都有 下面是一接收程序的样例(主要部分),大家可根据实际需要进行完善。 在Form中放置一Memo控件用于显示接收的数据,Combobox1选择通信参数(Setting属性值),Combobox2选择串口(CommPort属性值),按Button1开始接收数据,按Button2停止接收。 procedure TForm1.FormCreate(Sender: TObject); begin Mscomm1.InBufferCount :=0; // 清空接收缓冲区 Mscomm1.InputLen :=0; // Input读取整个缓冲区内容 Mscomm1.RThreshold :=1; // 每次接收到字符即产生OnComm事件 end; procedure TForm1.Button1Click(Sender: TObject); begin Mscomm1.Settings :=ComboBox1.Text; if ComboBox2.Text =′com1′ then // 假设只考虑COM1和COM2两种情况 Mscomm1.CommPort :=1 else Mscomm1.CommPort :=2; Mscomm1.PortOpen :=true; // 打开串口 Mscomm1.DTREnable :=true; // 数据终端准备好 Mscomm1.RTSEnable :=true; // 请求发送 end; procedure TForm1.Button2Click(Sender: TObject); begin Mscomm1.PortOpen :=false; // 关闭串口 Mscomm1.DTREnable :=false; Mscomm1.RTSEnable :=false; end; procedure TForm1.MSComm1Comm(Sender: TObject); var recstr:Olevariant; begin if Mscomm1.CommEvent = 2 then begin recstr := Mscomm1.Input ; Memo1.text := Memo1.Text + recstr; end; end; (江西 万雪勇) 本人初学 请帮帮忙 急问IDHttp控件使用问题 请问Serial Number 和 Authorization Key 招:Delphi程序员 UP有分 请教D6下的DBEXPRESS控件如何使用 打印管理器,讨论 real类型怎么转换成整数? 怎样在控制台程序显出结果后,能停一下,当按下任意键后才结束?谢谢! 从接触计算机到现在的几个难忘时刻~希望与大家共享美好程序人生! 急用,现学来不及了,直接求代码了。200分奉上 DBGrid绑定问题,请教高人! 谁开发过类BT下载软件程序
在Form中放置一Memo控件用于显示接收的数据,Combobox1选择通信参数(Setting属性值),Combobox2选择串口(CommPort属性值),按Button1开始接收数据,按Button2停止接收。
procedure TForm1.FormCreate(Sender: TObject);
begin
Mscomm1.InBufferCount :=0; // 清空接收缓冲区
Mscomm1.InputLen :=0; // Input读取整个缓冲区内容
Mscomm1.RThreshold :=1; // 每次接收到字符即产生OnComm事件
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Mscomm1.Settings :=ComboBox1.Text;
if ComboBox2.Text =′com1′ then // 假设只考虑COM1和COM2两种情况
Mscomm1.CommPort :=1
else
Mscomm1.CommPort :=2;
Mscomm1.PortOpen :=true; // 打开串口
Mscomm1.DTREnable :=true; // 数据终端准备好
Mscomm1.RTSEnable :=true; // 请求发送
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Mscomm1.PortOpen :=false; // 关闭串口
Mscomm1.DTREnable :=false;
Mscomm1.RTSEnable :=false;
end;
procedure TForm1.MSComm1Comm(Sender: TObject);
var
recstr:Olevariant;
begin
if Mscomm1.CommEvent = 2 then
begin
recstr := Mscomm1.Input ;
Memo1.text := Memo1.Text + recstr;
end;
end; (江西 万雪勇)