这句TEventFindHost = procedure(FromIP: String;var Handle: Boolean) of Object是什么意思。

解决方案 »

  1.   

    意思是,TEventFindHost类型的指针指向的是一个函数,这个函数需要这些参数,并且他是一个类的成员函数。
      

  2.   

    定义TEventFindHost 为过程变量
      

  3.   

    楼主真要一条道走道黑吗,给个例子type
      TFakeEvent = procedure (const strMsg: string) of object;
    ...
      private
        FTestEvent: TFakeEvent;
        procedure Hello(const strMsg: string);
      public
        property TestEvent: TFakeEvent read FTestEvent;
      end;
    ...
      //FTestEvent := Self.Hello;
      TMethod(FTestEvent).Code := @ExternalHello;
      TMethod(FTestEvent).Data := nil;
    ...
    procedure TForm1.Hello(const strMsg: string);
    begin
      ShowMessage('Hello '+strMsg);
    end;
    ,,,
    //注意这里传一个假参数const Null:Pointer用来这里Self指针的堆栈占用空间
    procedure ExternalHello(const Null: Pointer; const strMsg: string);
    begin
      ShowMessage('ExternalHello '+strMsg);
    end;
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Assigned(TestEvent) then
        TestEvent('World');
    end;