spcomm problem!(100分)

  • 主题发起人 主题发起人 tiger21
  • 开始时间 开始时间
T

tiger21

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位:
我把spcomm控件封装到了我的自己的类里了,现在我不知该如何响应spcomm的onreceivedata
事件,我自己写了好像响应不了
type
TIOCard = class(TComponent)
Comm1: TComm;
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
private

public
constructor Create(Awoner:TComponent);override;
destructor Destroy;override;
end;

然后在onreceivedata里写程序好像不起作用?
 
不会吧

10个月 前 我 这样 写过

在 客户 那里 一致 用到 现在 也 没出问题

//是不是 你 的 代码 有 。。。。。。
 
hfghfhgfg:

procedure TIOCard.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
s: string;
begin
SetLength(s,BufferLength);
Move(Buffer^,Pchar(s)^,BufferLength);
Form1.Memo1.Lines.Clear;
Form1.Memo1.Lines.Add(s);
Form1.Memo1.Invalidate;
end;

这么写接收不到数据?
 
我这样可以:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
j:integer;
begin
viewstring:='';
move(buffer^ ,pchar(@newrbuf)^ ,bufferlength);
for j:=0 to bufferlength-1 do
begin
viewstring:=viewstring +inttohex(newrbuf[j],2)+'' ;
end;
viewstring:='接收<-'+ viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
end;
 
yourclass = class(TComponent)
Comm1: TComm;
private

public
constructor Create(Awoner:TComponent);override;
destructor Destroy;override;
protected
procedure ReceiveData (Sender: TObject; Buffer: Pointer;BufferLength: Word);
end;

constructor TIOCard.Create(Awoner: TComponent);
begin
inherited Create(Awoner);
Comm1.OnReceiveData := ReceiveData;
end;

应该可以
 
多人接受答案了。
 
后退
顶部