In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TSysAnimate

Foro de Xailer profesional en español
Responder
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSysAnimate

Mensaje por miguel »

Hola.
::oSysAnimate:lActive := .T. // TSysAnimate Instanciado en el IDE ,
nCommonAvi := aviFIND
with object ::oArrayArti // TArrayBrowse Instanciado en el IDE
:aArrayData := oSQLSource:QueryArray( cSelect )
:refresh()
end
::oSysAnimate:lActive := .F.
La idea de estas lineas de codigo es que durante se hace la consulta en el
servidor SQL se muestre el objeto en movimiento, el programa funciona pero
hay un instante que se mueve y se para de inmediato.
Si se elimina la linea lActivate := .F. , cuando termina el query queda en
movimiento.
Saludos.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5707
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TSysAnimate

Mensaje por jfgimenez »

Miguel,
lo siguiente está sacado de la documentación del API:
One common use for an animation control is to indicate system activity
during a lengthy operation. This is possible because the operation thread
continues executing while the AVI clip is displayed. For example, the Find
dialog box of Microsoft Windows Explorer displays a moving magnifying glass
as the system searches for a file.
Note If you are using ComCtl32.dll version 6 the thread is not supported,
therefore make sure that your application does not block the UI or the
animation will not occur.
Por lo tanto, se supone que la animación debería continuar aunque estés
haciendo algo que consuma todo el tiempo de CPU (como es el caso), pero en
XP con temas no es así: la animación se para. Vamos, que M$ en vez de ir
avanzando, en algunas cosas va hacia atrás :-(
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSysAnimate

Mensaje por miguel »

Jose F. Gimenez" jfgimenez[ NO-SPAM,
Gracias por la respuesta, quitados los temas funciona correctamente, pero
no entiendo como otras aplicaciones con temas esto funciona. Y en el propio
windows tambien, el API es el mismo , ¿o no?
> Miguel,
>
> lo siguiente está sacado de la documentación del API:
>
> One common use for an animation control is to indicate system activity
> during a lengthy operation. This is possible because the operation
> thread continues executing while the AVI clip is displayed. For
> example, the Find dialog box of Microsoft Windows Explorer displays a
> moving magnifying glass as the system searches for a file.
>
> Note If you are using ComCtl32.dll version 6 the thread is not
> supported, therefore make sure that your application does not block
> the UI or the animation will not occur.
>
> Por lo tanto, se supone que la animación deberí­a continuar aunque
> estés haciendo algo que consuma todo el tiempo de CPU (como es el
> caso), pero en XP con temas no es así­: la animación se para. Vamos,
> que M$ en vez de ir avanzando, en algunas cosas va hacia atrás :-(
>
> José F. Giménez
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5707
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TSysAnimate

Mensaje por jfgimenez »

Miguel,
> Gracias por la respuesta, quitados los temas funciona correctamente, pero
> no entiendo como otras aplicaciones con temas esto funciona. Y en el
> propio windows tambien, el API es el mismo , ¿o no?
Para que funcione también con temas hay que llamar a ProcessMessages()
periodicamente.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSysAnimate

Mensaje por miguel »

Jose F. Gimenez" jfgimenez[ NO-SPAM,
> Miguel,
>
>> Gracias por la respuesta, quitados los temas funciona correctamente,
>> pero no entiendo como otras aplicaciones con temas esto funciona. Y
>> en el propio windows tambien, el API es el mismo , ¿o no?
>>
> Para que funcione también con temas hay que llamar a ProcessMessages()
> periodicamente.
>
> José F. Giménez
>
Con temas esto tampoco funciona
::oSysAnimate:lActive := .T.
ProcessMessages()
with object ::oArrayArti
:aArrayData := oSQLSource:QueryArray( cSelect )
:refresh()
end
::oSysAnimate:lActive := .F.
Responder