Suponiendo que tu bucle es algo como
Código Delphi
[-]
while condiciones do
begin
operaciones;
end;
lo que propone
Lepe es que lo modifiques así:
Código Delphi
[-]
Cancelado := false;
while condiciones and not Cancelado do
begin
Application.ProcessMessages;
operaciones;
end;
Application.ProcessMessages permite que tu formulario procese los mensajes en cada vuelta del ciclo, de manera que puedas orpimir el botón de Cancelar. En el evento OnClick de ese botón pondrías:
// Saludos