Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

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
 



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 10:19:58.


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