Your code probably contains Application.ProcessMessages?
Well it would have to, because without you app would become frozen for the time it takes to resize.
If it doesn't contain it, then something you call does.
Anyway, during an ProcessMessages all event (such as clicks, keys, (re-)paint) are processed.
So the 2nd click is executed, and your resize code called again.
You will have to collect and defer those calls yourself. Set a flag when you are resizing, and check when resize is called. I the flag is set, then do not resize, but increase the count of pending requests.
When finishing resize, check the count of pending requests.