Ver Mensaje Individual
  #1  
Antiguo 13-08-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Reputación: 18
flystar Va por buen camino
Question Aprendiendo Hilos, (no corre como un hilo)

Hola Hermanos.

Estoy aprendiendo a programar hilos, hice un ejemplo muy simple
de un programa que cada segundo que pasa le cambia el titulo a una venta
a 1 y luego 2 y luego 3 y asi sucesivamente, el objetivo es que dicha acción
la haga por medio de un hilo de ejecución, y la forma de saber si lo esta haciendo así es que durante el proceso podamos arrastrar nuestra aventana
con el mouse o apretarle a otro boton y que haga algo simple como cambiar el color de la ventana etc, ustedes saben.

El problema es que al ejecutar el hilo...si funciona, pero no me libera la ventana, pareciera que no se estuviera ejecutando realmente en un hilo.

Quiero ver si alguien de alma caritativa me pudiera decir que estoy haciendo mal.

Enseguida tratare de explicar el código simple que uso:

Aqui, simplemente declaro un nuevo objeto de clase TThread:

Código:
type
  CambiaTituloEnHilo= class(TThread)
  private
    Procedure Actualiza_Ttitulo_Ventana;
    { Private declarations }
  protected
    procedure Execute; override;
  end;
Luego declaro el constructor que manda llamar al procedimiento del objeto hilo:

Código:
procedure CambiaTituloEnHilo.Execute;
begin
  Synchronize(Actualiza_Ttitulo_Ventana)
end;
Luego declaro el procedimiento Actualiza_Ttitulo_Ventana:

Código:
Procedure CambiaTituloEnHilo.Actualiza_texto;
var
inicio:integer;
begin
  inicio:=1;
  for inicio:=1 to 400 do
  begin
        form1.Caption:=inttostr(inicio);
        sleep(1000); //Espera un segundo
   end
end;
y luego para arrancar el hilo, pues solo creo un objeto de la clase
CambiaTituloEnHilo, esto puede ser al apretar un boton y cuando eso pase pues el constructor execute
se mandara llamar:

Código:
  MiHilo:=CambiaTituloEnHilo.Create(false);
y listo....pero que creen??? NO funciona jejeje
Osea si funciona..si cambia el titulo de la ventana pero me inhibe la ventana.

Pues que estoy haciendo mal?

Gracias.
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita