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]
|