長い闘争の末、lazarus をインストールしたコード タイフーンがあり、プロジェクトにユニット IdSync を含めることができました。
TIdNotify からメインスレッドで実行したい関数にパラメータを渡すにはどうすればよいですか?
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;