If you draw on buffer surface instead of DXDraw.surface it may not show or is not accelerated if that bug still exists in undelphix...

to onClose event:
DXDraw.Finalize;

Edit: Hmm, maybe that buffer will work. For simple pixels there is no need to draw accelerated graphics on buffer However Canvas and acceleration is still a bad combination. You might consider making break marks as particles that start fading out after certain time or amount.