为何spcomm组件只能在ComReceiveData中采用局部变量来接受数据?想接收到全局变量该怎么办?
疯狂低调 2006-06-22 10:48:36 我用spcomm组件进行数据的发送,下位机也能及时地返回数据(通过串口精灵观察到)。但是我在一个按钮下写入如下代码(功能为发送数据并且判断接收到的数据)
com.WriteCommData('??',2);
if s='!' then showmessage('接受') else showmessage('空白'); //s 为接收函数填入数据,定义为公共变量
我是想实现 发送数据后,侦测其返回值(下位机会立即返回数据),但是一直没有实现,这是为什么。
接收端如下
procedure TfrmMain.ComReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
// var
// s: string;
begin
//move(Buffer^,ReceiveOrder,BufferLength);
SetLength(S, BufferLength); 。
Move(Buffer^, PChar(S)^, BufferLength);// s如果是公共变量,则发送时不能立刻得到返回
end;