Hi,
at first, do not paint anything in OnActivate. Some widgetsets does not support it at all (Qt, Carbon). Even if you have widgetset which enables you to paint out of OnPaint method (Windows or GTK2) the picture will stay there to the next Invalidate only. If you want it there permanently, there are at least three ways: use TPaintBox + OnPaint event or TImage, or move the code to Form1.OnPaint event.