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.

Problemas con TIMER

Foro público de Xailer en español
Responder
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Problemas con TIMER

Mensaje por Jorge Mason »

Estimados,
Creo un proyecto y un timer con lEnable en .F.
Para iniciarlo coloco un botón que hace oTimer1:Enable(), pero el TIMER no
se inicia.
#include "Xailer.ch"
CLASS TForm1 FROM TForm
COMPONENT oTimer1
COMPONENT oEdit1
COMPONENT oButton1
METHOD CreateForm()
METHOD Timer1Timer( oSender )
ENDCLASS
#include "Form1.xfm"
//---------------------------------------------------------- --------------------
METHOD Timer1Timer( oSender ) CLASS TForm1
oSender:Disable()
oSender:oParent:oEdit1:Value = seconds()
oSender:Enable()
RETURN Nil
Saludos
Jorge
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Problemas con TIMER

Mensaje por Jorge Mason »

Mis disculpas porque cuesta entender esta nueva forma de escribir los
programas
Era error mio, he correjido la función,
Antes :
METHOD Timer1Timer( oSender ) CLASS TForm1
oSender:Disable()
oSender:oParent:oEdit1:Value = seconds()
oSender:Enable()
RETURN Nil
El error era que aproveche de llamar a la misma función del TIMER para
iniciarlo, es decir, la función Timer1Timer() la llamaba desde un boton,
pero inicialmente oSender era el Timer, asi que esta función llamada desde
el botón no servía para activar el TIMER.
Ahora :
METHOD Timer1Timer( oSender ) CLASS TForm1
oSender:oParent:oTimer1:Disable()
oSender:oParent:oEdit1:Value = seconds()
oSender:oParent:oTimer1:Enable()
RETURN Nil
En todo caso es perfectamente entendible la forma de trabajar, un poco
incomodo pero lógico al fin y al cabo.
Saludos
Jorge Mason
"Jorge Mason" <jmason@chilesat.net> escribió en el mensaje
news:[email=434f318f@ozsrvnegro.ozlan.local...]434f318f@ozsrvnegro.ozlan.local...[/email]
> Estimados,
>
> Creo un proyecto y un timer con lEnable en .F.
>
> Para iniciarlo coloco un botón que hace oTimer1:Enable(), pero el TIMER no
> se inicia.
>
> #include "Xailer.ch"
>
> CLASS TForm1 FROM TForm
>
> COMPONENT oTimer1
> COMPONENT oEdit1
> COMPONENT oButton1
>
> METHOD CreateForm()
> METHOD Timer1Timer( oSender )
>
> ENDCLASS
>
> #include "Form1.xfm"
>
> //---------------------------------------------------------- --------------------
>
> METHOD Timer1Timer( oSender ) CLASS TForm1
> oSender:Disable()
> oSender:oParent:oEdit1:Value = seconds()
> oSender:Enable()
> RETURN Nil
>
> Saludos
> Jorge
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problemas con TIMER

Mensaje por jfgimenez »

Jorge,
> Ahora :
> METHOD Timer1Timer( oSender ) CLASS TForm1
> oSender:oParent:oTimer1:Disable()
> oSender:oParent:oEdit1:Value = seconds()
> oSender:oParent:oTimer1:Enable()
> RETURN Nil
>
> En todo caso es perfectamente entendible la forma de trabajar, un poco
> incomodo pero lógico al fin y al cabo.
Tal y como lo has escrito sí es un poco incómodo. Pero si lo escribes así:
METHOD Timer1Timer( oSender ) CLASS TForm1
::oTimer1:Disable()
::oEdit1:Value = seconds()
::oTimer1:Enable()
RETURN Nil
ya no lo es tanto ;-)
Debes tener en cuenta que todos los componentes y controles que pongas en un
formulario están declarados como DATAs dentro del mismo, y por lo tanto son
accesibles desde cualquier método del formulario, incluidos los métodos
correspondientes a los eventos, usando simplemente el operador Self (::)
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Problemas con TIMER

Mensaje por Jorge Mason »

Eso está muy bien
Gracias
Jorge
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:434f5d1e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jorge,
>
>> Ahora :
>> METHOD Timer1Timer( oSender ) CLASS TForm1
>> oSender:oParent:oTimer1:Disable()
>> oSender:oParent:oEdit1:Value = seconds()
>> oSender:oParent:oTimer1:Enable()
>> RETURN Nil
>>
>> En todo caso es perfectamente entendible la forma de trabajar, un poco
>> incomodo pero lógico al fin y al cabo.
>
> Tal y como lo has escrito sí es un poco incómodo. Pero si lo escribes así:
>
> METHOD Timer1Timer( oSender ) CLASS TForm1
> ::oTimer1:Disable()
> ::oEdit1:Value = seconds()
> ::oTimer1:Enable()
> RETURN Nil
>
> ya no lo es tanto ;-)
>
> Debes tener en cuenta que todos los componentes y controles que pongas en
> un formulario están declarados como DATAs dentro del mismo, y por lo tanto
> son accesibles desde cualquier método del formulario, incluidos los
> métodos correspondientes a los eventos, usando simplemente el operador
> Self (::)
>
>
> --
> Un saludo,
>
> José F. Giménez
>
Responder