Sì in effetti avevo già fatto una modifica in tal senso.
(Anche se non è possibile impostare un valore alla proprietà Terminated; esiste la funzione apposta "Terminate" )
Il problema è che se riapro la popup, imponendo nuovamente un Thread.Execute, mi vede il thread sempre come "Terminated" infatti non comincia alcun countdown.
Avevo modificato così:
codice:
procedure TThreadTimer.Execute;
var i: integer;
begin
 i := 0;
 Popup.LblInfo.Caption := IntToStr(10-(i div 1000));
 while not(Terminated) do
  begin
   sleep(1000); // un secondo
   i := i + 1000;
   Popup.LblInfo.Caption := IntToStr(10-(i div 1000)); // mostra i secondi che mancano
   if i = 10000 then
    begin
     Timer.Terminate;
     Synchronize(Dissolve);
    end;
  end;
end;

procedure TPopup.FormShow(Sender: TObject);
begin
 AlphaBlendValue := 0;
 if Timer.Terminated then
  Timer.Execute;
end;
Però in questo modo, quando ricompare la popup, il counter è fermo a 10 e non entra mai nel ciclo while (probabilmente perchè Terminated è true ma non è possibile assegnare valori, dato che Terminated è read-only)