I have a form c TStatusBarand bottom aligned TPanel, bottom aligned TSplitterand aligned by the client TPanel, as shown in the following screenshot:

(The separator is colored red to make it more obvious)
Button1 simply increases the height of Panel1 by 20:
Panel1.Height := Panel1.Height + 20;
But when you click on the order of changes in the controls, when Panel1 blows the status bar, and the splitter now resizes the status bar.

This only happens when the height of Panel1 increases by more than the height of StatusBar1 (19).
I assume that this is due to the presence of two lower aligned controls, but I do not agree with the exact cause of the problem and how to get around it.
I am currently using XE2, but I have the same problem with D2010.
Panel1 , , ?