我想创建一个类,从SPComm控件里申明的Tcomm继承,
TReadCardComm=class(TComm)
但不知该如何捕获里面的
ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);事件,你有什么办法吗?
谢谢指导
TReadCardComm=class(TComm)
但不知该如何捕获里面的
ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);事件,你有什么办法吗?
谢谢指导
TReceiveDataEvent = procedure (Sender: TObject; Buffer: Pointer;BufferLength: Word) of object;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
OleReceiveDataEvent: TReceiveDataEvent;
procedure NewReceiveDataEvent(Buffer: Pointer;BufferLength: Word);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
OleReceiveDataEvent := ReadCardComm1.OnReceiveDataEvent;
ReadCardComm1.OnReceiveDataEvent := NewReceiveDataEvent;
end;procedure TForm1.NewReceiveDataEvent(Buffer: Pointer; BufferLength: Word);
begin
ShowMessage('OK');
if Assigned(OleReceiveDataEvent) then //如果原来的事件存在,那么调用它
OleReceiveDataEvent(……);
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
如:
property OnMouseUp;
procedure ReceiveData(Buffer: PChar; BufferLength: Word);virtual;你只需覆盖这个方法即可:procedure ReceiveData(Buffer: PChar; BufferLength: Word);override;
begin
inherited;
dosometing....
end;