Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post Un TIMER miente!!!???!

Buen Dia:
Les molesto para consultarles si alguien ha tenido la experiencia de notar que el componente timer del delphi "miente" por asi decirlo,,, o en realidad no trabaja correctamente segun observe.
Lo que hago es desde una aplicacion envio por socket a 3 pc un tiempo x y le digo que "empiese a contar" al cronometrar eso con un reloj, note variaciones de aproximadamente 10 segundos en 5 minutos!! en todas las maquinas distinto...

por las dudas: como cuento el tiempo?! asi:

para adelante:
Código:
formx.LabelTimer.Caption:= FormatdateTime('hh:mm:ss',StrToDateTime (formx.LabelTimer.Caption)+0.00002);
para atras:
Código:
formx.LabelTimer.Caption:= FormatdateTime('hh:mm:ss',StrToDateTime (formx.LabelTimer.Caption)-0.00001);
a ver si eso les parece correcto...????

al parecer voy a tener que usar algo mas preciso que un timer o cambiar el algoritmo... alguien tiene conocimiento de este tema? Muchas gracias!
Responder Con Cita
  #2  
Antiguo 20-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Ignoro si el componente "TTimer" puede fallar tantos segundos en tan poco tiempo, pero, lo que no ignoro es que hay componentes que implementan un "TTimer" más fiable, o más preciso, una especie de "THighTimer". ¿Dónde encontrar alguno de estos componentes? Pues, por ejemplo, en Torry's Delphi Pages toparás con algunos de ellos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 20-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Un Timer de delphi no tiene fallos.

La verdad es que no veo la forma de contar, ya que ahí pillas un label, lo conviertes a datetime, despues le sumas una fracción, y por último le cambias el formato. ¿Donde está el timer? no lo veo por ningún sitio. Desde luego no es forma fiable de contar el tiempo, y mucho menos echarle la culpa al pobre Timer .

No sé como estas haciendo las cosas, pero yo usaría un timer simplemente poniendole el tiempo total que ha de esperar.

De todas formas, si necesitas más precisión, mira la ayuda de GetTickCount de la unidad Windows.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 20-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Lepe
Un Timer de delphi no tiene fallos.
Bueno. Conste que yo no he querido decir eso, sino constatar el hecho de que existen "Timer's" con mayor resolución, por decirlo de algún modo. Me parece raro que sean cinco segundos de "desfase" los que se alcanzen, pero, he probado alguna vez alguno de los "Timer's más precisos" y, en los ejemplos que acompañan a dichos componentes suele haber una muestra, precisamente, de cómo estos son más precisos que los "TTimer" de Delphi. Lamento no recordar exactamente el componente en cuestión, pero, en el enlace de más arriba pueden encontrarse varios de ellos: probablemente incluyan ejemplos en que se muestre la diferencia entre ambos "TTimer"y "THighTimer", por llamar de algún modo al "TTimer especial".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 20-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola de nuevo,

Acaso quepa añadir que, efectivamente, los "THighTimer's" son usados, me parece a mí, no en intervalos demasiado "largos"; es precisamente ahí donde muestran su mayor eficacia respecto a los "TTimer" que acompañan a Delphi. Quiere decirse que este puede medir un tiempo de "0.500" milisegundos, y acaso los otros rezen "0.230" segundos, o resultados por el estilo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 20-10-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Exclamation

Mi estimado lepe... se supone que como estoy hablando del timer, si hay un timer , lo que mostre de codigo es lo que esta adentro del timer.... ... no entiendo por que preguntas esooo....??
Si, quizas es porque dije que lo mando por socket... se puede interpretar otra cosa... o sea yo por socket mando la orden de que se active el timer con el codigo que he dejado expresado anteriormente, si se malentendio, mil disculpas!

En cuanto a lo que tu dices que el timer no tiene fallos... No me cierra bajo ningun concepto!!!
Imagina... tu pones un timer a hacer "algo" a 1000 ms...
perfecto....
emmm imagina que los recursos del cpu estan al 80 % o sea la pc esta a full....

entonces... no imaginas que el timer se ir un poco de tiempo imaginemos...
1010 ms.... o sea.,, si muestro algo en pantalla considero que siempre poco a poco se va a ir adelantando...

Lo digo comprobado empiricamente.. agarramos las pc y pusimos a tirar datos por pantalla con algunos for's paralelos para sacar recursos al procesador... y el adelanto fue detectado perfectamente... asi que si... el timer no es perfecto...
Ahora si , con GetTickCount haciendo lo debido, podria solucionar el problema....


Saludos!.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:39:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi