Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2012
n03l n03l is offline
Miembro
 
Registrado: Feb 2007
Posts: 73
Poder: 12
n03l Va por buen camino
Ejemplo sencillo para ejecutar Hilos en delphi

Buenas. estoy viendo en la web una guia de como crear hilos en delphi, pero estoy demasiado confundido y no allo la manera de echar a andar un ejemplo sencillo de como correr un hilo
tengo el siguiente codigo que estoy viendo en delphi.allimited

Código Delphi [-]
unit Unit2;

interface

uses
  Classes;

type
  THilo = class(TThread)
  Ejecutar: procedure of object;
  private

    { Private declarations }
  protected
    procedure Execute; override;
  end;

  var
  Hilo: THilo; // variable global o pública


implementation

 uses Unit1;

procedure THilo.Execute;
begin
 Ejecutar;
  Terminate;
end;
procedure CrearHilo;
begin
  Hilo.Ejecutar := Form1.ProcesarDatos;//aqui no me lo reconoce y eso que agregue un procedimiento de ese nombre en //Form1
  Hilo.Priority := tpNormal;
  Hilo.Resume;
end;

procedure ProcesarDatos;
begin
  // Este es el procedimiento que ejecutará nuestro hilo
  // Cuidado con hacer procesos críticos aquí
  // El procesamiento paralelo de XP no es el de Linux
  // Se puede ir por las patas abajo...
end;



end.

el problema que tengo esque no se como ejecutar el hilo, desde el Form principal. o si tiene un codigo fuente como para novatos se los agradeceria.
saludos.
Responder Con Cita
  #2  
Antiguo 23-08-2012
Gerson12 Gerson12 is offline
Miembro
 
Registrado: Apr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 7
Gerson12 Va por buen camino
si no mal me equivoco quieres hacer como themaposter q existe para los uploader ?¿
__________________
Gracias a todos por apoyarme ^^
Responder Con Cita
  #3  
Antiguo 23-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: Apr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.676
Poder: 13
Chris Va por buen camino
Estás seguro que ése código aparecía así en la Web original? O representa su propia intención de crear tus propios hilos? El código que nos compartes no tiene sentido y está todo mal.

Prueba con este código:
Código Delphi [-]
unit Unit2;

interface

uses
    Classes;

type
    THilo = class(TThread)
    private
        { Private declarations }
        FEjecutar: Procedure of Object;
    protected
        procedure Execute; override;
    published
        property Ejecutar: Procedure of Object read FEjecutar write FEjecutar;
    end;

    var
        Hilo: THilo; // variable global o pública (NO SON BUENA IDEA)


implementation
    uses Unit1;


// implentación de la clase THilo

procedure THilo.Execute;
begin
    // el procedimiento Execute contendrá todo el
    // código central del hilo. Si el hilo fuera
    // un árbol, Execute sería el tronco.
    
    // hacer los cálculos pesados

    // ...
    // ...
    // ...

    // notificar al formulario
    Synchronize(Self.Ejecutar);
    // (synchronize hace que este hilo se sincronice con el
    //  principal, para no interferir en las operaciones que
    //  el último pueda estar realizando. En este caso el
    //  hilo será suspendido [pausado] hasta que "Ejecutar"
    //  termine su ejecución.)
end;


procedure CrearHilo;
begin
    // Como crear el hilo?
    // los hilos se crean cómo cualquier otra clase en Delphi.
    Hilo := THilo.Create(CreateSuspended:=True);

    Hilo.Ejecutar := Form1.ProcesarDatos;
    Hilo.Priority := tpNormal;
    Hilo.Resume;
end;

procedure ProcesarDatos;
begin
  // Este es el procedimiento que ejecutará nuestro hilo
  // Cuidado con hacer procesos críticos aquí
  // El procesamiento paralelo de XP no es el de Linux
  // Se puede ir por las patas abajo...


end;

end.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 23-08-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: Jul 2004
Ubicación: Barcelona - España
Posts: 15.606
Poder: 10
Neftali [Germán.Estévez] Tiene un aura espectacularNeftali [Germán.Estévez] Tiene un aura espectacular
Tienen razón en lo que te han dicho. Yo tampoco le veo sentido al código que has puesto. Le faltan cosas...
En la sección de ejemplos del FTP del club, si buscas por la palabra thread, encontrarás varios ejemplos completos con código.

En mi web, también puedes encontrar algunos ejemplos sobre threads, desde los más sencillos, como este o este otro, a alguno más complejo como este que trabaja con hilos para lanzar consultas con ADO en paralelo. Todos ellos tienen el código fuente. Bájalo, revísalo e intenta entenderlo.

Si tienes problemas, ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 23-08-2012
n03l n03l is offline
Miembro
 
Registrado: Feb 2007
Posts: 73
Poder: 12
n03l Va por buen camino
Ok, muchas gracias me sirvio bastante, ya lo solucione con la ayuda de todos Uds.
saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Realizar este sencillo ejercicio en Delphi. elpupas7 Varios 34 30-03-2013 01:45:11
Error al ejecutar cliente/servidor+hilos tato_ma JAVA 3 12-03-2009 21:34:52
Cable sencillo para bascula trex2000 Varios 1 03-03-2009 10:06:53
Método más sencillo para lanzar una única consulta sql a BD mysql minime Conexión con bases de datos 3 04-09-2007 20:30:44
Ejecutar proyecto sencillo con Mono SMTZ .NET 6 25-09-2006 10:27:45


La franja horaria es GMT +2. Ahora son las 07:15:44.


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