Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-10

threads...

12 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

Hola todos.

en una parte de la aplicaci�n env�o un mail (usando synapse con los ejemplos que me han compartido).. ahora, haciendo pruebas, veo que el proceso de env�o demora un ratito.. quisiera que esta tarea se haga en background, para no dar la sensaci�n de que se est� demorando nada, porque en realidad el usuario no sabe q se est� enviando un mail.. para eso debo usar threads y poner eseproceso en otro hilo? le� la ayuda de lazarus pero no me queda muy claro como modificar lo que ya tengo.. muchas gracias!

Reply by email

Claudio Romero
to Paola Bruccoleri

Lo de threads me parece complicado, aunque funcionar�a.

- Lo mas facil, que el envio de email se haga en otro ejecutable, que se llame desde el primero.
- No se synapse, pero deber�a tener algun modo asincrono, o un evento OnWork (como para poner la velocidad/bytes enviados) y ahi poner un application.processmessages, eso permitir�a seguir trabajando al usuario.

Tendr�as que probarlo
Saludos

El d�a 9 de octubre de 2013 15:29, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:

Show quoted text 16 lines
Hola todos. en una parte de la aplicaci�n env�o un mail (usando synapse con los ejemplos que me han compartido).. ahora, haciendo pruebas, veo que el proceso de env�o demora un ratito.. quisiera que esta tarea se haga en background, para no dar la sensaci�n de que se est� demorando nada, porque en realidad el usuario no sabe q se est� enviando un mail.. para eso debo usar threads y poner eseproceso en otro hilo? le� la ayuda de lazarus pero no me queda muy claro como modificar lo que ya tengo.. muchas gracias! _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

Paola Bruccoleri
to Claudio Romero

El 09/10/2013 16:47, Claudio Romero escribi�:

Lo de threads me parece complicado, aunque funcionar�a. co - Lo mas facil, que el envio de email se haga en otro ejecutable, que se llame desde el primero.

Hola Claudio..

hice el programa consola, y estoy probando TPRocess para ejecutarlo, pero:
- me muestra una ventana negra (ni recuerdo como evitar que se abra)
- me demora lo mismo.... no se como hacer que corra en "background"

byeeeeeee

Reply by email

Claudio Romero
to Paola Bruccoleri

Sobre la ventana negra, puede ser en opciones del compilador -> Generar una aplicaci�n gr�fica.

Sobre la demora, verifica las opciones de TProcess que no espere a que termine el proceso. Excluir si existe poWaitOnExit.

Saludos

El d�a 9 de octubre de 2013 17:29, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:

Show quoted text 22 lines
El 09/10/2013 16:47, Claudio Romero escribi�: > > Lo de threads me parece complicado, aunque funcionar�a. > co > > - Lo mas facil, que el envio de email se haga en otro ejecutable, que > se llame desde el primero. Hola Claudio.. hice el programa consola, y estoy probando TPRocess para ejecutarlo, pero: - me muestra una ventana negra (ni recuerdo como evitar que se abra) - me demora lo mismo.... no se como hacer que corra en "background" byeeeeeee _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

Paola Bruccoleri
to Claudio Romero

El 09/10/2013 18:45, Claudio Romero escribi�:

Show quoted text 7 lines
Sobre la ventana negra, puede ser en opciones del compilador -> Generar una aplicaci�n gr�fica. Sobre la demora, verifica las opciones de TProcess que no espere a que termine el proceso. Excluir si existe poWaitOnExit.

ok, ya qued� pronto, muchas gracias!
ahora ya queda r�pido, solo teng q ver que en determinado momento la aplicaci�n queda como esperando, con el puntero del rat�n en forma de circulito...
pero son apenas unos instantes...
byeeeeeeeeee

Reply by email

Maxi
to Claudio Romero: Lo de threads me parece complicado, aunque funcionar�a. - Lo mas facil, que el envio de…

en el hilo hay un metodo execute en el que pones lo que queres ejecutar, lo configurar como autodestruir.
MyThread.FreeOnTerminate:=true;
Pero tendrias que llevar algunas banderas y metodos callback para revisar cuando termine si pudo o no hacerlo, existe un metodo sincronize en el que llamas a funciones del formulario. te paso por privado un ejemplo simple

El d�a 9 de octubre de 2013 15:47, Claudio Romero <clauslack en gmail.com> escribi�:

Show quoted text 36 lines
Lo de threads me parece complicado, aunque funcionar�a. - Lo mas facil, que el envio de email se haga en otro ejecutable, que se llame desde el primero. - No se synapse, pero deber�a tener algun modo asincrono, o un evento OnWork (como para poner la velocidad/bytes enviados) y ahi poner un application.processmessages, eso permitir�a seguir trabajando al usuario. Tendr�as que probarlo Saludos El d�a 9 de octubre de 2013 15:29, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�: > Hola todos. > > en una parte de la aplicaci�n env�o un mail (usando synapse con los ejemplos > que me han compartido).. ahora, haciendo pruebas, veo que el proceso de > env�o demora un ratito.. quisiera que esta tarea se haga en background, para > no dar la sensaci�n de que se est� demorando nada, porque en realidad el > usuario no sabe q se est� enviando un mail.. > para eso debo usar threads y poner eseproceso en otro hilo? le� la ayuda de > lazarus pero no me queda muy claro como modificar lo que ya tengo.. > muchas gracias! > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Maxi
to Maxi

Te contesto aca para que quede la respuesta publica.

Crea una funcion que sea la que envia el mail.

Dentro del procedimiento execute

sincronize(@la_funcion_que_manda_mail);

y listo.
Cuando definis el objeto lo pones como FreeOnTetminate:= true se ejecuta y solo se destruye.

El d�a 10 de octubre de 2013 10:27, Maxi
<maximiliano.duarte en gmail.com> escribi�:

Show quoted text 58 lines
en el hilo hay un metodo execute en el que pones lo que queres ejecutar, lo configurar como autodestruir. MyThread.FreeOnTerminate:=true; Pero tendrias que llevar algunas banderas y metodos callback para revisar cuando termine si pudo o no hacerlo, existe un metodo sincronize en el que llamas a funciones del formulario. te paso por privado un ejemplo simple El d�a 9 de octubre de 2013 15:47, Claudio Romero <clauslack en gmail.com> escribi�: > Lo de threads me parece complicado, aunque funcionar�a. > > - Lo mas facil, que el envio de email se haga en otro ejecutable, que > se llame desde el primero. > - No se synapse, pero deber�a tener algun modo asincrono, o un evento > OnWork (como para poner la velocidad/bytes enviados) y ahi poner un > application.processmessages, eso permitir�a seguir trabajando al > usuario. > > Tendr�as que probarlo > Saludos > > > El d�a 9 de octubre de 2013 15:29, Paola Bruccoleri > <pbruccoleri en adinet.com.uy> escribi�: >> Hola todos. >> >> en una parte de la aplicaci�n env�o un mail (usando synapse con los ejemplos >> que me han compartido).. ahora, haciendo pruebas, veo que el proceso de >> env�o demora un ratito.. quisiera que esta tarea se haga en background, para >> no dar la sensaci�n de que se est� demorando nada, porque en realidad el >> usuario no sabe q se est� enviando un mail.. >> para eso debo usar threads y poner eseproceso en otro hilo? le� la ayuda de >> lazarus pero no me queda muy claro como modificar lo que ya tengo.. >> muchas gracias! >> >> >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

José Mejuto
to Maxi

El 10/10/2013 22:25, Maxi escribi�:

Show quoted text 8 lines
Te contesto aca para que quede la respuesta publica. Crea una funcion que sea la que envia el mail. Dentro del procedimiento execute sincronize(@la_funcion_que_manda_mail);

Hola,

Tengo la sensaci�n de que aqu� te has liado, ya que justo Sinchronize lo que hace es parar el thread y hacer que la funci�n indicada se ejecute como si fuera llamada desde el thread principal de la aplicaci�n (o lo que es lo mismo cualquiera de los form por ejemplo).

Reply by email

Maxi
to José Mejuto

tienes razon Jose el sincronize es para la parte visual.

El d�a 10 de octubre de 2013 19:52, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 26 lines
El 10/10/2013 22:25, Maxi escribi�: > Te contesto aca para que quede la respuesta publica. > > Crea una funcion que sea la que envia el mail. > > Dentro del procedimiento execute > > sincronize(@la_funcion_que_manda_mail); > Hola, Tengo la sensaci�n de que aqu� te has liado, ya que justo Sinchronize lo que hace es parar el thread y hacer que la funci�n indicada se ejecute como si fuera llamada desde el thread principal de la aplicaci�n (o lo que es lo mismo cualquiera de los form por ejemplo). -- _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog

Reply by email

Paola Bruccoleri
to José Mejuto: El 10/10/2013 22:25, Maxi escribi�: Tengo la sensaci�n de que aqu� te has liado, ya…

El 10/10/2013 20:52, Jos� Mejuto escribi�:

Show quoted text 18 lines
El 10/10/2013 22:25, Maxi escribi�: > Te contesto aca para que quede la respuesta publica. > > Crea una funcion que sea la que envia el mail. > > Dentro del procedimiento execute > > sincronize(@la_funcion_que_manda_mail); > Hola, Tengo la sensaci�n de que aqu� te has liado, ya que justo Sinchronize lo que hace es parar el thread y hacer que la funci�n indicada se ejecute como si fuera llamada desde el thread principal de la aplicaci�n (o lo que es lo mismo cualquiera de los form por ejemplo).

Hola todos..
gracias por todos sus comentarios..
termino de hacer pruebas y todo me est� funcionando correctamente y como quer�a!
Era m�s sencillo de lo que pensaba, ya que cre�a que ten�a que modificar mucha cosa del programa principal y nada que ver, solo agregu� una nueva unit con esa clase de ejemplo que viene en la wiki y que modifiqu� a mis necesidades agregando los par�metros de mi funci�n y en donde lo necesito creo el hilo, inicializo las variables del objeto y mando a ejecutar.
byeeeeeee

Reply by email

Pedro Pablo Oviedo Vera
to Claudio Romero: Sobre la ventana negra, puede ser en opciones del compilador -> Generar una aplicaci�n…

pregunto nuevamente: �no han intentado enviar email con los componentes de inet?....no son nada complicados y tampoco lento el proceso.....

Saludos
pp

El mi�, 09-10-2013 a las 17:45 -0300, Claudio Romero escribi�:

Show quoted text 37 lines
Sobre la ventana negra, puede ser en opciones del compilador -> Generar una aplicaci�n gr�fica. Sobre la demora, verifica las opciones de TProcess que no espere a que termine el proceso. Excluir si existe poWaitOnExit. Saludos El d�a 9 de octubre de 2013 17:29, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�: > El 09/10/2013 16:47, Claudio Romero escribi�: >> >> Lo de threads me parece complicado, aunque funcionar�a. >> co >> >> - Lo mas facil, que el envio de email se haga en otro ejecutable, que >> se llame desde el primero. > > Hola Claudio.. > > hice el programa consola, y estoy probando TPRocess para ejecutarlo, pero: > - me muestra una ventana negra (ni recuerdo como evitar que se abra) > - me demora lo mismo.... no se como hacer que corra en "background" > > byeeeeeee > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
MSc. Ing. Pedro Pablo Oviedo Vera Direcci�n T�cnica y Desarrollo Empresa de Proyectos Agropecuarios ENPA Ministerio de la Agricultura Boyeros y Conill, Piso 10 Edif MINAG Telef. 884 5365 - 883 1703

Reply by email

Paola Bruccoleri
to Pedro Pablo Oviedo Vera

El 13/10/2013 21:13, Pedro Pablo Oviedo Vera escribi�:

Show quoted text 8 lines
pregunto nuevamente: �no han intentado enviar email con los componentes de inet?....no son nada complicados y tampoco lento el proceso..... Saludos pp

Hola PP..
no, yo no he probado!
si tienes alg�n ejemplo funcional puedes enviarlo..total, ya de paso lo pruebo!
byeeeeeeee

Reply by email