关于spcomm(10分)

  • 主题发起人 主题发起人 jonjon
  • 开始时间 开始时间
J

jonjon

Unregistered / Unconfirmed
GUEST, unregistred user!
取它返回的值必须用move方法吗?能不能直接取buffer里的值?
 
没有人知道吗
 
不明白说的,这控件都触发事件的啊,使用里面的变量就可以了
 
to:wwr74
如下:我把Buffer指针赋给temp再取temp里的值就行,直接取Buffer里的值就不行。请大家帮帮忙。
procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
var
temp : pchar;
begin

move(Buffer,temp,BufferLength);
memo1.Lines.Add(temp);
end;
 
大家快来看看呀,我在线等呀。
 
并不一定非要move方法,直接读取也可以
procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
var
pStr : pchar;
begin


pStr:= Buffer;
memo1.text := memo1.Text + pstr;
end;

这样就行了
 
直接到buffer里取不把它付给pstr怎么不行呢?
 
procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
type Rev=array[1..64] of byte ;
var
A:array [0..63] of byte;
B:array [1..64] of byte;
myRev:^Rev;
i,x,y,j,k:integer;
s,s1,s2,s3,s4:String;
R:myCRC;
begin

myRev:=buffer;
for i:=1 to bufferLengthdo

begin

s:=s+intToHex(byte(myRev),2);
B:=strtoint(intToHex(byte(myRev),2));
end;

R:=Crc16(B);
if (B[62]<>R[1]) or (B[63]<>R[0]) then

exit;
memo1.Lines.Add(s);
memo1.Lines.Add(#13);
end;
 
接受答案了.
 
后退
顶部