Die
VCL erlaubt nur eine begrenzte Zahl (4) gleichzeitig von TControlCanvas geöffneter Device Contexts zu einer bestimmten Zeit. Deswegen wird der Device Context eines TControlCanvas (das
Handle) intern freigegeben, wenn eine andere TControlCanvas-Instanz eines benötigt. Ich vermute mal, daß nach dem Zugriff auf das jeweils andere Control das PaintBox1.Canvas.Handle auf 0 steht (kannst du ja mal prüfen).