Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 16-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Bueno, aqui te dejo un ejemplo muy simple de como usar un thread.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  // Aquí declaramos una clase nueva descendiente TThread
  TMiThread = class(TThread)
  protected
    procedure Execute; override;
  public
    constructor Create;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Este es el evento OnClick de un boton que coloque en el formulario
procedure TForm1.Button1Click(Sender: TObject);
var
  MiThread: TMiThread;
begin
  // Creamos el thread 
  MiThread:= TMiThread.Create;
  // Mostramos un mensaje
  ShowMessage('Pulsa aceptar para terminar');
  // Cuando el mensaje se cierra, terminamos el thread 
  Mithread.Terminate;
end;

{ TMiThread }

constructor TMiThread.Create;
begin
  inherited Create(FALSE);
  // Aqui le indicamos que cuando la ejecucion del thread termine
  // debe liberar el objeto TMithread
  FreeOnTerminate:= TRUE;
end;

// Este procedimiento se llama justo después de crear el objeto, y se
// ejecuta de forma paralela al resto de la aplicación.
procedure TMiThread.Execute;
begin
  repeat
    Windows.Beep(500,100);
    // Siempre que tengamos un bucle de este tipo, es conveniente usar algún
    // retardo para no abusar de la CPU. A lo mejor en tu código no es necesario.
    Sleep(1000);
  until Terminated;
end;

end.

En el ejemplo anterior, hacemos sonar un pitido a intervalos de un segundo. Como ves, el bucle se tiene que insertar en el método "Execute" del TThread.
Responder Con Cita
 


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
¿Como hago esto? IZO API de Windows 5 02-03-2007 20:37:38
Thread bendito thread...se me pierde la ventana Seba.F1 API de Windows 5 02-02-2006 00:16:30
Como hago esto en Delphi ? Markos1970 OOP 5 19-12-2005 15:40:29
como hago esto meosre MySQL 3 06-10-2005 17:14:09
Base de datos multi área (multi departamento) Al González Conexión con bases de datos 0 19-03-2004 16:27:14


La franja horaria es GMT +2. Ahora son las 14:19:24.


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