IdNotify:如何将参数传递给函数

时间:2012-11-28 21:01:12

标签: indy lazarus

我已经安装了lazarus的代码台风,经过长时间的争斗,我已经设法将单位IdSync包含在我的项目中。

如何将参数传递给我想在TIdNotify的主线程中执行的函数?

1 个答案:

答案 0 :(得分:1)

你必须覆盖TIdNotify.DoNotify()方法,然后你可以传递你想要的任何参数,例如:

type
  TMyNotify = class(TIdNotify)
  protected
    procedure DoNotify; override;
  end;

procedure TMyNotify.DoNotify;
begin
  SomeFunction(parameters);
end;

begin
  ...
  TMyNotify.Create.Notify;
  ...
end;

据推测,您希望调用线程指定参数值,因此只需将它们作为类的成员,例如:

type
  TMyNotify = class(TIdNotify)
  protected
    Param1: SomeType;
    Param2: SomeType;
    Param3: SomeType;
    procedure DoNotify; override;
  end;

procedure TMyNotify.DoNotify;
begin
  SomeFunction(Param1, Param2, Param2);
end;

begin
  ...
  with TMyNotify.Create do
  begin
    Param1 := ...;
    Param2 := ...;
    Param3 := ...
    Notify;
  end;
  ...
end;