Gracias por contestar.
Entiendo que un Thread es un 'ente autónomo' por lo tanto no sé si puedo utilizar Self en algún lado. Además después se juntaría con otro problema. En el propio Thread, a su vez se llama a otros procedimientos genéricos de cálculos, y en dichos procedimientos tengo que incrementar una variable del propio form o thread (según quien llame al procedimiento). Por lo tanto no veo cómo podría funcionar usando Self.
A Neftalí : Esa es precisamente la cuestión que se me presenta. Si el Thread es tal 'ente autónomo', cómo sé qué formulario creó un thread. Sí que es cierto que le podría pasar un parámetro o variable en la cual sepa qué form de listado lo ha llamado. Pero donde me dí cuenta del problema es que si ejecuto dos formularios de listados que a su vez cada uno llaman a un Thread que está declarado de la siguiente manera :
Código Delphi
[-]unit ListGeneral;
...
type
TList_General = class(TForm)
....
TCalculate_Total = class(TThread)
procedure UpdateMainForm;
private
....
public
....
protected
procedure Execute; override;
end;
var
List_General: TList_General;
Calculate_Total: TCalculate_Total;
....
implementation
....
lo que tengo claro es que al definir mi Arr_List en el Mainfom como Array of TList_General, puedo acceder a cada instancia de Arr_List por su posición en el array, es decir, a cada form de listado por su posición en el Array Arr_List.
Pero cuando en Arr_List[0] (p.ej.) se termina Calculate_Total llamando a Terminate y por lo tanto Terminated = True, entonces se me para también Calculate_Total del Arr_List[1] ya que tengo claro que tienen el mismo nombre.
Cómo diferencia cada instancia de Calculate_Total que se crean en cada instancia propia de List_General ? Supongo que ahí está el problema.