Ver Mensaje Individual
  #2  
Antiguo 16-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 20
rgstuamigo Va por buen camino
Arrow

Pues básicamente debes crearte una clase descendiente de la clase TThread y sobre-escribir(Override) el método Execute, inclusive Delphi te ayuda a crear dicha clase, pues tiene un asistente(Wizard) que te lo hace todo ; en Delphi 7 yo lo hago así:
Me voy al menú File>New>Other... En la ventanita que te parece, debes seleccionar dentro de la ficha(pestaña) "New" la opcion "Thread Object" pulsamos el boton "Ok" y nos va a salir otra ventanita donde debemos indicarle el nombre de nuestra clase(class Name); en mi caso yo le he puesto por nombre de clase "TMyHilo", vos si querés le puedes poner cualquier nombre, en la opcion que dice Thread name lo puedes dejar en blanco,luego presionamos el boton "OK" y Delphi creará una unidad nueva, la cual contendrá el esqueleto de una nueva clase descendiente de TThread, inclusive con el método Execute override, listo para empezar a programar...
Bueno aquí está como queda:
Código Delphi [-]
unit Unit2;

interface

uses
  Classes;

type
  TMyHilo = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

implementation

{ Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure TMyHilo.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end; }

{ TMyHilo }

procedure TMyHilo.Execute;
begin
  { Place thread code here }
end;

end.
Para ponerle prioridad Baja al Hilo se utiliza la propiedad "Priority" por ejemplo voy a crear una Instancia de mi clase TMyHilo:
Código Delphi [-]
var
hilo: TMyHilo; { TMyHilo es un descendiente de TThread }
begin
  hilo := TMyHilo.Create(True); { crear suspendido - "hilo" no se ejecuta aún }
  hilo.Priority := tpLower; { establecer la prioridad a la baja de lo normal,
 si queremos más baja aún podemos asignarle "tpLowest",
para más informacion buscar "TThreadPriority type" en la Ayuda de Delphi  }
  hilo.Resume; { Ahora corre el hilo, eso quiere decir que el hilo ejecuta su método "Execute"}
end;
Espero haberte podido ayudar...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita