![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
A simple vista ha varias cosas que no estan bien, te recomiendo que para crear el hilo vayas a File-new-Other-Thread object, te pide el nombre que deseas darle al hilo en tu caso TMyhilo. Te queda esto.
Para llamar a este hilo por ejemplo desde la unidad principal
Mas cosas, como veras que pone en el codigo del thread no se debe desde un hilo cambiar propiedades ni usar metodos de componentes visuales. Para esto de usar Synchronize. Un ejemplo
Echale un vistazo a esto y comparalo con tu codigo. Te recomiendo leer sobre el tema porque hay muchas cosas que saber antes de empezar a programar, los manuales que te recomende en mi primer post explica todo esto. Última edición por white_zombie fecha: 16-01-2009 a las 22:43:12. |
|
#2
|
||||
|
||||
|
ok probare eso ahora
|
|
#4
|
|||
|
|||
|
Mira este ejemplo explica algo
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFPrincipal = class(TForm) EContador: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; type Tcontador= class(TThread) dwTiempo word;iSegundos:integer; Etiqueta:Tlabel; constructor Create; reintroduce ; overload ; procedure execute; override; procedure ActualizarPantalla; end; var FPrincipal: TFPrincipal; Contador:Tcontador; implementation {$R *.dfm} { Tcontador } procedure Tcontador.ActualizarPantalla; begin Etiqueta.Caption:=IntToStr(iSegundos); end; constructor Tcontador.Create; begin inherited Create(True);//lamamos al constructor padre (TThread) dwTiempo:=GetTickCount; iSegundos:=0; end; procedure Tcontador.execute; begin inherited; //CONTAMOS HASTA 10SEGUNDOS while iSegundos<10 do //¿an pasado 1000 milisegundos? if GetTickCount - dwTiempo>1000 then begin //incrementamos el contador de segundos y actualizamos la etiqueta Inc(iSegundos); Synchronize(ActualizarPantalla); //Etiqueta.Caption:=IntToStr(iSegundos); dwTiempo:=GetTickCount; end; end; procedure TFPrincipal.FormCreate(Sender: TObject); begin Contador:=Tcontador.Create(True); Contador.Etiqueta:=EContador; Contador.FreeOnTerminate :=True; Contador.Resume; end; end. |
|
#5
|
|||
|
|||
|
por cierto el formulario se llama FPrincipal y se coloco en el un label que se llama EContador
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| como crear hilos de ejecucion en delphi 2007 | pablopessoa | Varios | 1 | 23-10-2008 19:11:08 |
| Ayuda Con Hilos(Threds) | juangiron | OOP | 1 | 04-05-2007 19:46:24 |
| Aplicacion con varios Hilos de Ejecución | samantha jones | Varios | 1 | 02-03-2005 17:27:24 |
| Hilos de ejecucion | el toluca | Varios | 2 | 29-06-2004 22:59:04 |
|