OnTerminateを使うには?

解決


bMoL  2002-10-18 23:56:31  No: 1749  IP: [192.*.*.*]

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関数は呼ばれません。何が間違っているのでしょう。

編集    削除
にしの  2002-10-19 01:48:30  No: 1750  IP: [192.*.*.*]

最初のtest関数はpublicの後なのでおそらくクラスのメンバ関数ですよね。
最後のtest関数は、クラス名がないので単純な関数です。
別物ですよ。
メンバ関数ならば、
procedure TRecvThrd.test(Sender: TObject);
begin
end;
となります。
それと、スレッドから別のスレッドのVCLを操作するときは、Synchronizeメソッドを利用しないとだめです。

編集    削除
bMoL  2002-10-20 01:55:08  No: 1751  IP: [192.*.*.*]

> procedure TRecvThrd.test(Sender: TObject);
記入ミスでした。このように書いてありました。

何でかわからないんですけど、関数が呼ばれるようになりました。
お騒がせしてすみません。

編集    削除