请教:如何ActiveX添加自定义事件?
当前在做的一个项目,实时监控的一个东东,要求在网页上将监控的数据实时展现给用户,考虑用ActiveX+HTML实现:
1. 服务器收到数据包,通过Socket将数据包发给ActiveX
2. ActiveX收到数据包,触发自定义事件,将数据包发送给网页的JavaScript
3. JavaScript更新页面上的内容
这个自定义事件在Delphi里如何实现?刚才上网查了一些资料,都没有详细说明这个步骤,还望各位DX指点一下。
目前我只知道:Type Library --> New Method,接下去的步骤就搞不懂了。
//以下这段是Socket客户端接收消息
procedure TafxSck.OnSocketRead(var message: TMessage);
var
pHeadBuf, pBodyBuf: PChar;
iHeadLen, iBodyLen: Integer;
myPack: PMyPack;
sMsg: string;
iRet: Integer;
begin
iHeadLen := SizeOf(TMyPack);
case WSAGETSELECTEVENT(message.lParam) of
FD_READ: //Socket有数据需要读取
begin
GetMem(pHeadBuf, iHeadLen);
iRet := Recv(xl_socket, pHeadBuf^, iHeadLen, 0); //读取包头
if iRet = SOCKET_ERROR then
begin
systemLog('Read Error!');
Exit;
end
else
begin
myPack := PMyPack(pHeadBuf); //解析出包头
iBodyLen := myPack^.PackLen; //得到包体的长度
if iBodyLen > 0 then
begin
//再读取包体
GetMem(pBodyBuf, iBodyLen);
iRet := Recv(xl_socket, pBodyBuf^, iBodyLen, 0);
if iRet = SOCKET_ERROR then
begin
systemLog('Read Error!');
Exit;
end;
sMsg := string(pBodyBuf);
FreeMem(pBodyBuf, iBodyLen);
//*******到这里,我已经得到服务器传过来的数据包了,这里要如何触发自定义的事件???
end;
end;
end;
FD_CLOSE:
begin
systemLog('Socket Closed!');
end;
end;
end;