当然可以,只要你把要在线程终止执行的代码写在一个过程中,然后把这个过程的指针给OnTerminate就可以了,如下:
procedure WhenThreadFinished(Sender: TObject);
begin
{Insert the Code that run when the Thread Object Execute Over}
end;
这个一个事件,事件函数是8字节的,和一般4字节的函数不一样,所以一定要把对象里面的函数赋值给它,就是procedure (XXXXX) of object;
具体参见李维的《VCL架构剖析》,其中有关于procedure of object的说明,还讲了VCL内部怎么把一个普通函数转化为一个procedure of object的,相当有趣。