Wieso willst unbedingt einen Thread ?
Delphi-Quellcode:
loopBeginTickCount := GetTickCount;
// FBitmap mit neuem Frame bestücken, was auch immer das ist
Synchronize(DrawFrame);
Sleep(Max(MS_PER_FRAME - (GetTickCount-loopBeginTickCount), 1));
Macht absolut nix innerhalb des Threads, sondern alle "Arbeit" wird in der
VCL erledigt ... wozu also keinen Timer, statt des Sleeps und gleich in der
VCL bleiben?