我在窗体中放5个PANEL;
当做不同操作的时候用代码控制5个PANEL的显示还是隐藏
比如:我的PANEL从上到下分别是1\2\3\4\5;align都是altop
第一次操作让2不显示,窗体上看到的是1\3\4\5;
然后进行下一次操作:把所有的都显示,我想要的结果是
从上到下:1\2\3\4\5
可是显示的却是5\4\3\1\2顺序
请问大家如何把显示出来仍旧按原来的顺序呢?
谢谢大家帮忙,有没有碰到这样的问题呢?
难道一定要用每次显示的时候都要重新计算top 吗?

解决方案 »

  1.   

    ///....
        { Private declarations }
        FOldTops: array[1..5] of Integer;
      public
        { Public declarations }
      end;//....
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Panel2.Visible then FOldTops[2] := Panel2.Top;
      if Panel3.Visible then FOldTops[3] := Panel3.Top;
      //...
      Panel2.Visible := not Panel2.Visible;
      Panel3.Visible := not Panel3.Visible;  if Panel2.Visible then Panel2.Top := FOldTops[2];
      if Panel3.Visible then Panel3.Top := FOldTops[3];
      //...
    end;
    //....