Thank you,
Yes, TImage works! there is no need to put everything in the OnPaint procedure.
During the resizing of TImage, it repaints existing drawings on its Canvas automatically.
There is just one issue:
When the size of TImage changes, (due to resizing of the Form1), the size of the Canvas is still the original value and never changes:
(Form1.Image1.Width, Form1.Image1.Height): these two automatically change due to resizing.
(Form1.Image1.Canvas.Width, Form1.Image1.Canvas.Height): these two are the same and never change.
I tried to set the dimension of the Image1.Canvas equal to Image1 dimension in the OnResizing event, however, it didn't work!!
Any idea how to keep the size of the Canvas equal to its component size during the resizing of the component(TImage)?
PS: I guess this is a bug and should be reported. The Canvas size remains as the original size despite the TImage resizing.