TThreadにあるOnTerminateイベントはどうやって使うのでしょう?
public
procedure test(Sender:TObject);
end;
〜省略
constructor TRecvThrd.Create(Flag: Boolean);
begin
OnTerminate := test;
end;
procedure test(Sender:TObject);
begin
Form1.Caption := 'OnTerminate実行';
end;
とやっているのですが、test関数は呼ばれません。何が間違っているのでしょう。
最初のtest関数はpublicの後なのでおそらくクラスのメンバ関数ですよね。
最後のtest関数は、クラス名がないので単純な関数です。
別物ですよ。
メンバ関数ならば、
procedure TRecvThrd.test(Sender: TObject);
begin
end;
となります。
それと、スレッドから別のスレッドのVCLを操作するときは、Synchronizeメソッドを利用しないとだめです。
> procedure TRecvThrd.test(Sender: TObject);
記入ミスでした。このように書いてありました。
何でかわからないんですけど、関数が呼ばれるようになりました。
お騒がせしてすみません。
ツイート | ![]() |