This is a simple example, which shows how to create and destroy an additional thread for your application. First of all, you should declare new thread object and override Execute method. Use Create method to create new thread for your application. Use FreeOnTerminate property to free and destroy your thread.
type TTestThread = class(TThread) private j: Integer; protected procedure GetInfo; procedure Execute; override; end; ... procedure TTestThread.Execute; var i, j: Integer; begin SendMessage(Form1.Handle, WM_SETTEXT, 0, Integer(PChar('Thread is created'))); j:=1; FreeOnTerminate:=True; for i:=1 to 90000000 do begin if Terminated then break; Inc(j, Round(Abs(Sin(Sqrt(i))))); end; SendMessage(Form1.Handle, WM_SETTEXT, 0, Integer(PChar('Thread is destroyed'))); end; procedure TForm1.Button1Click(Sender: TObject); var NewThread: TTestThread; begin NewThread:=TTestThread.Create(False); end;