To draw on a TPaintBox, you need to use its OnPaint event, because TPaintBox has no internal buffer, and drawing on its canvas is "live", i.e. it will disappear on the next redraw (which may happen on the next frame, so the image will live only a fraction of a second).