PaintBox control allows drawing on its internal canvas. It has lots of drawing methods as well as ability to access canvas data directly. When control's canvas need to be destroyed or invalidated you will have to redraw your painting again. The better place to do it is in OnDraw event. It's called each time after canvas invalidation and drawing first time after it. The invalidation of canvas happens when you remove PaintBox from form or parent control. If you want to call several drawing methods simultaniously it is better to start from DrawBegin() method, then draw by calling drawing methods as much times as you need, and after that just call DrawEnd(). Although you can omit DrawBegin() and DrawEnd() calls it will work faster with them.

PaintBox control(widget)