Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Post

Hola, el código de primera vista parece estar bien.

Pero si decis que el programa se te congela, obviamente hay un problema.

Por lo que estuve mirando, me parece estar en el procedimiento mover;

un detalle que puede ser, pero no debería, es el valor del sleep muy pequeño, proba con valores mas grandes.

Lo que si genera mas sospechas es ciclo while que tenes dentro del mismo procedimiento. Pareciera que es el el que se dedica a actualizar la graficación del componente (ya que no indicas donde se hace). Si es asi, parece que no termina su ejecución hasta que termina de graficar, y ahi es el problema. Es como si estuvieras llamando al procedimiento mover directamente sin hilo.

Espero que te de una idea

Suerte
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 18-05-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 22
elcigarra Va por buen camino
otros asuntos del mismo componente

Crandel, evidentemente somos casi vecinos, por lo menos en internet ya que soy de Montevideo. Sabés que finalmente hoy a la 0:30 de la madrugada pude solucionarlo poniendo un Application.processmessages antes del sleep en el procedimiento mover. Yo tenía uno pero lo ejecutaba solamente una vez por proceso de movimiento. Poniéndolo de esta forma procesa los mensajes cada vez que dibuja una instancia del control.

Sin embargo tal vez puedas ayudarme en esto. Ahora funciona a la perfección, pero solamente cuando está solo, ya que si pongo dos o más controles iguales de estos, en un mismo form, solo funciona el último. Los primeros ni siquiera terminan de dibujarse bien, quedan como colgados mientras el otro funciona perfecto. Tenés idea si existe alguna interacción prohibida entre los threads iguales o hay que poner alguna restricción en los componentes que usan threads.? Se me ocurre que como el hilo esta dentro del componente si hay dos queda todo igual y el procesador se hace algún lío con esto. Tal vez lo que digo sea un disparate pero aviso que hace 15 días no sabía lo que era un thread :-).
Responder Con Cita
  #3  
Antiguo 18-05-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
No hay ningún tipo de restricción en los holos de ls componentes. Cada componente ejecuta su propio hilo.

El problema que tenes es que estas poniendo Application.processmessages dentro del procedimiento mover y tu problema sigue siendo el mismo, tu componentes no esta corriendo multi hilo .

Con el processmessages, lo que le estas indicando a tu aplicación, es que procese los mensajes que tenga pendiente, pero eso no lo convierte en multihilo, dado que tu mientras los procesa, tu componente se deja de graficar. Sin embargo es una buena solución en muchas situaciones, pero no en la tuya.

Si queres mandame por mail tu código a [email protected] y te doy una mano.

Suerte
__________________
[Crandel]
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 00:40:07.


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