Delphi:动态创建TClientSocket

时间:2010-10-19 09:32:37

标签: delphi delphi-7

我正在尝试在运行时创建TClientsocket但我无法分配事件。

我用

var
  cs:TCLIENTSOCKET;

procedure OnReadx;
begin

end;

procedure intsok;
begin
  cs:=Tclientsocket.create(nil);
  cs.OnRead:=OnReadx;
end;

它不起作用。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

并且事件声明为

TSocketNotifyEvent = procedure (Sender: TObject; Socket: TCustomWinSocket) of object;

所以你已经用这些参数写了一个函数,例如

procedure OnReadx(Sender: TObject; Socket: TCustomWinSocket);

并在代码中分配:

cs.OnRead:=OnReadx;

最好的问候,

答案 1 :(得分:3)

问题是TClientSocket类要求其各种事件的事件处理程序是方法指针(它们必须属于某个对象),而不是常规过程。

解决了!