Supongo que estas pensando en un bucle que envia todos los faxes:
algo como:
Código:
repeat
EnviarFax(numero);
until NoHayMasNumeros;
De esta forma, no hay manera de "esperar" si no es con un "bucle de espera".
Pero si repensas el proceso de otra forma, no habra necesidad de él y podes valerte del evento OnFinish ya mencionado.
Mi idea es:
Declaras un método que envia solamente un fax. Este se llamará EnviarSiguienteFax y tendrá la lógica para tomar el número de fax de donde lo estes sacando. Por ejemplo, si es una base de datos, simplemente se ubicará en el siguiente registro y enviará el fax. Si no hay mas fax para enviar, no hara nada y saldrá.
Luego en el evento OnFinish del componente fax simplemente llamarás a EnviarSiguienteFax.
Para iniciar el envio, vamos a hacer una rutina llamada EnviarPrimerFax, que inicializará el DataSet y luego llamará a EnviarSiguienteFax.
Quedaria algo como:
Código Delphi
[-]
Procedure TForm1.EnviarSiguienteFax;
Var
Numero : String;
Begin
if TablaFaxes.eof Then
Exit; Numero := TablaFaxes.FieldByName('NumeroFax').AsString;
TablaFaxes.Next; EnviarFax(Numero);
end;
Procedure TForm1.FaxOnFinish;
Begin
EnviarSiguienteFax;
end;
Procedure EnviarPrimerFax;
Begin
TablaFaxes.Active := True;
TablaFaxes.First;
EnviarSiguienteFax;
End;
Hay aqui cierta recursividad indirecta. Dependerá de como el componente envie el fax si esa recursividad es real o no. Entiendo que devuelve el control a la aplicación, con lo que se liberaría el stack. Si no es asi, bastaria con cambiar el evento OnFinish para que no llame directamente a EnviarSiguienteFax, sino que se valga de un timer, por ejemplo, que sea el que genere la siguiente llamada.
Espero que la idea general te sirva de ayuda.
Hasta luego