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.
Código Delphi
[-]
unit Unit2;
interface
uses
Classes;
type
TMyhilo = class(TThread)
private
protected
procedure Execute; override;
end;
implementation
procedure TMyhilo.Execute;
begin
end;
end.
Para llamar a este hilo por ejemplo desde la unidad principal
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,unit2;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
hilo:Tmyhilo;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
hilo:=Tmyhilo.Create(true);
hilo.Resume;
end;
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
Código Delphi
[-]
unit Unit2;
interface
uses
Classes,windows;
type
TMyhilo = class(TThread)
private
protected
procedure Execute; override;
procedure update_label;
end;
implementation
uses unit1;
procedure TMyhilo.Execute;
begin
Synchronize(update_label);
end;
procedure TMyhilo.update_label;
begin
form1.Label1.Caption:='Esto es una prueba';
end;
end.
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.