Hi,
ich denke, hier würde ein
DoubleBuffered := true; auf dem ParentControl (Form1) wahrscheinlich schon ausreichen.
Wenn nicht, dann zeichne alles intern auf ein Bitmap und gib es mit BitBlt auf der PaintBox aus.
Edit: Da ist ja der Source dabei, sorry, du machst es ja genau so.
Edit 2: Du könntest versuchen, die Ampeln auch manuell zu zeichnen und keine Shapes verwenden, dann würden die ganzen
BringToFronts auch wegfallen.