比如 有多个 TPanel控件,分别为 panel1,panel2,panel3....它们的Align都为 alTop;
而且 panel1在最上面,panel2其次,panel3再其次... 我在控制的时候,
          有时候需要 panel1.Visible:=false;
          有时候需要 panel1.Visible:=ture;          有时候需要 panel2.Visible:=false;
          有时候需要 panel2.Visible:=ture;          有时候需要 panel3.Visible:=false;
          有时候需要 panel3.Visible:=ture;
          ......结果你就会发现,这样控制之后,
 panel之间的次序乱了;
而且 panel1,pane2,pane3之间一般都要用spliter间隔,动态设置后,这个spliter也不听话,到处乱串,不能放在你想指定的地方; 
 而且还要象下面这样控制: 如果 这3个panel 都可见,那么需要 panel1 和 panel2都放在最上面,panel3最大化; 也就是 panel1.Align:=alTop; panel2.Align:=alTop; panel3.Align:=alClient;如果 panel1,panel2,panel3 当中某些不被看见;
比如 panel3不被看见,那么panel2就要最大化;
比如 panel2,panel3都要不被看见,那么panel1就要最大化;
不知道用什么方法,让panel之间的前后排版顺序不发生变化;spliter也能按照自己的想法放在指定的地方;3年前我就遇到这个问题,尝试了很多办法解决它,一直没有找到理想答案;