Hola.
Supongo que el ejemplo que has puesto está escrito directamente en el navegador, pero por si acaso, deberías tener algo como esto en tu código, ya que si no, te dará error:
Código Delphi
[-]
if Hilo=nil then
Hilo:=THiloClass.Create;
Ahora el problema que tienes es que "Hilo" se queda asignado.
La solución es sencilla. Sobreescribe el método Destroy de tu clase hilo para reasignarlo a nil, por ejemplo:
Código Delphi
[-]
Destructor THiloClass.Destroy;
begin
Hilo:=nil;
end
De esta forma, cuando el hilo muera escribirá nil en la variable Hilo.
Un saludo,
LoPiTaL