FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Crear un hilo TImage
¿Como puedo hacer para crear un componente TImage Hilo?
|
#2
|
||||
|
||||
¿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 |
#3
|
||||
|
||||
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
|
#4
|
|||
|
|||
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. |
#5
|
||||
|
||||
Intento de solucion
para quitar el parpadeo de las imagenes debes colocar este comando
Código:
DoubleBuffered=true; |
#6
|
||||
|
||||
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? |
#8
|
||||
|
||||
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) |
#9
|
||||
|
||||
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--; } |
|
|
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 |
|