Solo un par de detalles. No deberias de utilizar componentes de un formulario desde un Thread sin usar el metodo "Synchronize".
Segundo, como haces para cerrar y mostrar la ventana F_Balanza porque puede que el problema este ahi y no en el thread.
Por ultimo la solucion de Roman me parece sencilla y deberia de funcionar de maravilla. Aunque al escribirlo CREO que no lo hizo en el orden correcto, deberia de ser:
Código:
DeleteFile('balanza.txt');
EjecutarBalanza;
repeat
Application.ProcessMessages;
until FileExists('balanza.txt') or Application.Terminated;
ShowMessage('Ya terminó');
Si me equivoco, perdoname ...