Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Post Crear un hilo TImage

¿Como puedo hacer para crear un componente TImage Hilo?
Responder Con Cita
  #2  
Antiguo 10-04-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
¿qué es un componente TImage Hilo?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 10-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Post Aclaracion 01

en realidad creo un componente TImage en tiempo de ejecucion, pero quiero ke este componente se cree como si fuera un hilo del proceso, pero... basicamente mi problema es otro, que ahora estoy viendo la salida, TTimer trabaja con el tiempo del sistema, esto es 1 ms de ttimer mas o menos seria 50 ms en la realidad (dependiendo de la maquina), y queria que mi imagen tenga una animacion extremadamente rapida, y aparentemente no tengo que usar ttimer para este caso, sino usar el reloj de multimedia, multimedia timer creo ke me apure en mi busqueda de la respuesta
Responder Con Cita
  #4  
Antiguo 10-04-2008
pulpin pulpin is offline
Miembro
 
Registrado: feb 2008
Ubicación: medellin,colombia
Posts: 53
Poder: 17
pulpin Va por buen camino
una solucion

pues yo estoy en algo parecido, un osciloscopio. me encontre esta pagina en internet que habla sobre hilos, en la cual dicen que dentro de la ejecucion del mismo no debemos tener componenetes de dibujo sino que debemos hacer una llamada a otra rutina que se encargara de esto.....

http://www.programacionfacil.com/cpp...iprocesamiento

el inconveniente que tengo en este momento es un parpaddeo de la imagen por la velocidad de refresco de la misma, lo que espero no te suceda, bueno espero que esto te ayude.
suerte.
Responder Con Cita
  #5  
Antiguo 10-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Post Intento de solucion

para quitar el parpadeo de las imagenes debes colocar este comando
Código:
    DoubleBuffered=true;
en el momento que se crea el formulario, o sea en formcreate
Responder Con Cita
  #6  
Antiguo 14-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Exclamation Aclaracion 03

Ok vuelvo al tema, Necesito crear un hilo que sea un componente. Logre utilizar Multimedia time de mmsystem.h pero es demasiado rapido para mi componente TImage, creo ke es demasiado rapido para la aplicacion en si. Entonces vuelvo a mi primera pregunta
¿Como puedo crear un hilo TImage?
Responder Con Cita
  #7  
Antiguo 14-04-2008
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Si lo q quieres es un timer q se ejecute en un hilo esta el componente TJvThreadTimer de la JVCL, q hace q el código en su evento OnTimer se ejecute en un hilo..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #8  
Antiguo 14-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Post Aclaracion 03 :\

Si, pero en realidad quiero hacer un thread de TImage solo TImage, ya que timage debe tener vida propia (mi TImage tiene una animacion mediante un TTimer). Pero olvidemosno de el tiempo y el espacio.

thread de Timage

(sin usar el poder de los Jedi)
Responder Con Cita
  #9  
Antiguo 30-04-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Post otra aclaracion

Mi problema es este, cada TImage en un determinado tiempo cambia la imagen.
Cuando TTimer en interval==1 llama a los TImage y realiza un cambio en la imagen y esto funciona, da la impresion de que tiene una animacion.
El problema esta en que tengo una matriz de TImage donde hay una sola que tiene animacion (Image1), y el resto son imagenes que cuando pasa el mouse por arriba realiza un cambio de imagen y pasa de un foco apagado (la imagen claro) a un foquito prendido, el tema esta es que cuando muevo el mouse para todos lados se prenden y se apagan muchos foquitos a la vez y la animacion de Image1 se interrumpe y queda estatico.

captura en t0 (te sub cero, se lee como en fisica o analisis matematico)
captura1

captura en t1
captura2

el codigo que voy a colocar es mas informativo que para entiendan ya que el problema es el congelamiendo de la animacion del gato cuando el puntero del mouse se mueve a alta velocidad y realiza varios cambios en las esferas
codigo de las esferas verdes
Código:
void __fastcall TForm1::LosaEnter(TObject *Sender)
{
TImage1 *aux = (TImage1 *)(Sender);
if(aux->Enabled==true){
if(resolucion==1)
aux->Picture->LoadFromFile("imagenes\\losa1-640x480.bmp");
if(resolucion==2)
aux->Picture->LoadFromFile("imagenes\\losa1-800x600.bmp");
if(resolucion==3){
aux->Picture->LoadFromFile("imagenes\\losa1-1024x768.bmp");
}
}
}
void __fastcall TForm1::LosaLeave(TObject *Sender)
{
TImage1 *aux = (TImage1 *)(Sender);
if(aux->Enabled==true){
if(resolucion==1)
aux->Picture->LoadFromFile("imagenes\\losa-640x480.bmp");
if(resolucion==2)
aux->Picture->LoadFromFile("imagenes\\losa-800x600.bmp");
if(resolucion==3){
aux->Picture->LoadFromFile("imagenes\\losa-1024x768.bmp");
}
}
}

codigo de la animacion del gato
Código:
 
void __fastcall Gatos::Timer1Timer(TObject *Sender)
{
int aux;//variable que va a guardar la animacion tomada de la cola
int i,j;//variables donde se guardan las posiciones
if(t==0){
//reproducir sonidos
if(primson!=NULL){//lista cargada
son=primson;
while(son!=NULL){
if(son->animno==currentanim){
if(son->imageno==p->id){
//reproducir
PlaySound(son->path,NULL,SND_ASYNC);
}
}
son=son->prox;
}
}
//fin reproducir sonidos
p=p->prox;
if(p->prox==NULL){
t=-1;
}
else{
t=p->t;
Width=p->w;
Height=p->h;
Left=resleft-p->xc;
Top=restop-p->yc;
this->Picture->LoadFromFile(p->str);
}
}
else{
if(t>-1)
t--;
}
//descuento del tiempo total
if(tt<=0){
control=true;
//posicionar si es que hay cola en posicionar;
if(primcolapos!=NULL){//hay una posicion en espera
i=primcolapos->i;
j=primcolapos->j;
colapos=primcolapos->prox;
delete primcolapos;
primcolapos=colapos;
posicionar(i,j);
}
//cambiar anim si es que hay cola en anim
if(primcolaanim!=NULL){//hay animaciones en la cola
aux=primcolaanim->n;
colaanim=primcolaanim->prox;
delete primcolaanim;
primcolaanim=colaanim;
cambiaranim(aux);
}
this->Parent->Enabled=true;
}
else
tt--;
}
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como Hacer que un TImage siga a un Timage? j_flores3000 OOP 8 27-03-2008 18:47:50
Copiar Bitmap de un TImage a otro TImage quinqui Gráficos 2 24-01-2008 15:22:30
cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace robertosc Varios 1 14-08-2007 22:11:09
como combinar 2 Timage en un tercer Timage JefeNet Gráficos 10 02-09-2004 16:51:35
Eliminar un hilo? oneromm Varios 2 23-12-2003 13:43:20


La franja horaria es GMT +2. Ahora son las 03:23:38.


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