Und genau so bitte nicht!
Erstmal sollte man niemals direkt
CreateThread aufrufen.

Zitat von
Delphi Hilfe:
BeginThread encapsulates the
Win32 CreateThread
API call, but unlike CreateThread, it sets the global IsMultiThread variable, thereby making the heap thread-safe.
Dann entspricht die Thread-Routine nicht der Vorgabe, wie eine Thread-Funktion auszusehen hat. Sollte zwar auch gehen, würde ich aber nicht empfehlen. Die sieht nämlich so aus:

Zitat von
Delphi Hiilfe:
type TThreadFunc = function(Parameter: Pointer): Integer;
Dann wird ohne ein Schutzblock auf globale, sichtbare Ressourcen der
VCL zugegriffen:
Form1.ListBox1.Items.Add(IntToStr(i));
Sollte zwar auch gut gehen, kann aber auch böse ins Auge gegehen. Stichwort an dieser Stelle
CrtitcalSection oder für die Delphi Hilfe:
TCriticalSection.