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 04-04-2005
Elfoscuro Elfoscuro is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
Elfoscuro Va por buen camino
Hilos y TTimer...

Hola...

¿Podríais indicarme alguna página que explique clarito "para tontos" y en castellano el empleo de hilos? Es que necesito que un proceso se ejecute con exactitud cada 320 ms, y el TTimer va como le peta. De momento lo he medio solucionado con GetTickCount, pero si se pudiera hacer de mejor manera, por lo menos aprendería algo...

Saludos del elfo
Responder Con Cita
  #2  
Antiguo 07-04-2005
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
tengo un pequeño manual que te puede servir.. si lo quieres te lo mando al tu correo, solo avisa.
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #3  
Antiguo 07-04-2005
Elfoscuro Elfoscuro is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
Elfoscuro Va por buen camino
Si gracias, me interesa...

Si puedes enviarmelo a:

apachusque (cambiar esto por una arroba) msn (punto) com

A ver si puedo hacer mi programa más regular (y me entero de que leches son los hilos).

Un saludo
Responder Con Cita
  #4  
Antiguo 07-04-2005
Avatar de Investment
Investment Investment is offline
Miembro
 
Registrado: may 2003
Posts: 378
Poder: 21
Investment Va por buen camino
Que es lo que te falla exactamente en el Timer?

Y,

Que es lo que tienes que ejecutar cada 320ms?
__________________
Saludos,
Peter Investment
Responder Con Cita
  #5  
Antiguo 07-04-2005
Elfoscuro Elfoscuro is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
Elfoscuro Va por buen camino
El Timer es inexacto. Es decir, tiene una prioridad baja en Windows, por lo que si en el momento que tiene que ejecutar el código asociado a él, windows está haciendo alguna parida, el Timer se espera, con lo que no consigo una temporización perfecta. Si lanzo la aplicación y me quedo mirando la pantalla, sin hacer nada más, ya veo como falla (y eso que es cada 320 ms ;-)). No es regular. Y si tengo a Windows ocupado de fondo, ya ni te cuento la irregularidad el joio TTimer.

Por eso me comentaron que era mejor hacerlo con hilos, porque son bastante más estables. Parece ser que Windows les da más prioridad. Al fin y al cabo, es un proceso "en segundo plano", es decir, independiente del usuario. La única interacción con el usuario es visual.

Y en cuanto a lo que necesito ejecutar, es algo un poco raro, dado los tiempos que corren. Todo se remonta a mediados de los 80, cuando me compré mi Spectrum... bueno, no me enrollo. Es un visor de pantallas de presentación del ZX Spectrum (ordenador de 8 bits de principios de los 80 para los que no lo conozcan). Estas pantallas tenían algunas partes con flash (o parpadeo). Este flash cambiaba su estado cada 320 ms.

Para implementar esto, cargo la pantalla en dos TBitmaps, uno con cada versión de la pantalla, con y sin flash, y los cargo alternativamente cada 320 ms en un TImage.

Por eso se nota mucho. Si el flash va a trompicones, no queda nada bien. Y ya ni te cuento si lo hago con dos pantallas, en dos TImages. Solo va el flash en uno de ellos. El otro (o los otros) TImages, no van ni a la de tres.

Imagino que con hilos irán todos, y sincronizados. Al fin y al cabo, cargar la pantalla me cuesta unos 35ms desde disco, dibujado incluido, por lo que imagino que el traspaso entre canvas me costará bastante menos.

Saludos del elfo
Responder Con Cita
  #6  
Antiguo 07-04-2005
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Enviado...
espero que te ayude....

[off topic] Me gustaria saber como se puede colocar es articulo en algun lugar de descarga del foro, asi se pudieran beneficiar todos los que quisieran...
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #7  
Antiguo 07-04-2005
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
+++

Tienes una explicacion y ejemplos interesantes en el area de trucos: http://www.clubdelphi.com/trucos.php.

Busca por Hilo.

__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #8  
Antiguo 07-04-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Buen día a todos!

Elfo:

Creo que te puede servir la respuesta que di en
http://www.clubdelphi.com/foros/showthread.php?t=20123. Se trata de un componente (en realidad una clase de objeto) que se encarga del trabajo difícil.

Saludos.

Al González.
Responder Con Cita
  #9  
Antiguo 08-04-2005
Elfoscuro Elfoscuro is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
Elfoscuro Va por buen camino
Gracias...

Lo probaré a ver que tal se me da ;-)

Saludos del elfo
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 15:46:43.


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