Now I understand a bit more what you want to achieve.
TAChart starts with the size given to it by its Width and Height properties. Then, in the Draw method (which is called from the Paint cycle), it does all its internal size calculations to fit all its elements into this given rectangle. The ClipRect is only known afterwards. So, I think you can solve your issues by FIRST forcing the chart to draw itself; but don't call Chart.Invalidate which is delayed and not executed immediately; Chart.Refresh maybe should do.