Ver Mensaje Individual
  #3  
Antiguo 02-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cool

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; //no se hace nada mas!
  //Envia el fax del registro actual:
  Numero := TablaFaxes.FieldByName('NumeroFax').AsString;
  TablaFaxes.Next;  // ubica la tabla en el siguiente registro
  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

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 02-06-2004 a las 19:37:04.
Responder Con Cita