如何把Dll中的事件引出来呀
我写的Dll代码,其中的FDataServerObj有一个onDataPack事件,如何在Dll中引出FDataServerObj的onDataPack事件到主程序.
library DataServer;
uses
SysUtils,
Classes,
System,
DataServerObj;
type
TDataPackReceive = procedure(p_DataPackHex: pchar; p_Data: pchar; p_DataLen: integer); //数据包事件
TStateEvent = procedure(p_State: integer; p_StateDesc: pchar); //状态事件
var
FDataServerObj: TDataServerObj;
procedure datapack();
begin
end;
function DataServerInit(p_CommNum: integer): Boolean; stdcall
begin
result := false;
try
FDataServerObj := TDataServerObj.Create(nil);
//FDataServerObj.onDataPack := datapack;
FDataServerObj.CommStart(p_CommNum);
result := true;
except
end;
end;
{$R *.res}
exports DataServerInit;
begin
end.
==================================================
DataServerOjb组件代码
unit DataServerObj;
interface
uses
SysUtils, Classes, MSCommLib_TLB,DataProceThread,ExtCtrls;
type
TonDataPackEvent = procedure(SAddress:Integer;DataPackHex: pchar; DataPackLen: integer) of object; stdcall;
TDataServerObj = class(TComponent)
private
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property onDataPack: TonDataPackEvent write SetonDataPack;
end;
implementation
{ TDataServerObj }
constructor TDataServerObj.Create(Owner: TComponent);
begin
inherited;
end;
destructor TDataServerObj.Destroy;
begin
FDataProc.Free;
inherited;
end;
end.