我已经安装了lazarus的代码台风,经过长时间的争斗,我已经设法将单位IdSync包含在我的项目中。
如何将参数传递给我想在TIdNotify的主线程中执行的函数?
答案 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;