在Dll里面动态创建的Spcomm怎样响应OnReceiveData事件?(50分)

  • 主题发起人 主题发起人 rovedream
  • 开始时间 开始时间
R

rovedream

Unregistered / Unconfirmed
GUEST, unregistred user!
在Dll里面动态创建的Spcomm怎样响应OnReceiveData事件
用 Comm1.OnReceiveData:=DoReceiveData;语句总是提示出错
DoReceiveData与OnReceiveData事件响应函数一样
procedure DoReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
 
没有人知道吗
其实就是怎么响应在Dll里面动态创建控件的事件
 
type
TComControl = class(TObject)
private
Comm1: TComm;
procedure DoReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
public
constructor Create(ComPort: string);
destructor Destroy; override;
end;

constructor TComControl.Create(ComPort: string);
begin
inherited Create;
Comm1:=TComm.Create(nil);
Comm1.CommName:=ComPort;
Comm1.OnReceiveData:=DoReceiveData;
end;

destructor TComControl.Destroy;
begin
if Assigned(Comm1) then Comm1.Free;
inherited;
end;

procedure TComControl.DoReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
begin
//处理
end;
 
to luzhouman:
谢谢您的解答,但还是有几个问题不太明白:
为什么要把TComm封装到一个类里面呢,而不是直接继承呢?
如果采取这种方法,我怎么发送数据,访问其他方法,属性呢,要另写方法对Comm进行操作吗?有这方面的收发数据完整例子提供吗?
 
没人知道吗
在线等
 
另写一个类把事件处理函数放在此类里面,再把此函数赋给OnXX事件
 
另写一个类把事件处理函数放在此类里面,再赋值给OnXX
 
多人接受答案了。
 
好像是要在一个类里才能设定接收事件
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部