回 帖 发 新 帖 刷新版面

主题:[讨论]请教panel奇怪的Align问题,希望能得到点拨

procedure TForm1.N2Click(Sender: TObject);
begin
  self.Panel1.Align := alnone;
  self.Panel2.Align := alnone;
  self.Panel3.Align := alnone;
  self.Panel4.Align := alnone;
  self.Panel1.Align := alTop;
  self.Panel2.Align := alClient;
  //self.Panel2.Height := trunc(0.5 * self.Height);
  self.Panel3.Visible := false;
  //self.Panel3.Align := alTop;
  self.Panel4.Visible := false;
  //self.Panel4.Align := alClient;

end;

procedure TForm1.N1Click(Sender: TObject);
begin
  self.Panel1.Align := alnone;
  self.Panel2.Align := alnone;
  self.Panel3.Align := alnone;
  self.Panel4.Align := alnone;

  self.Panel1.Align := alTop;
  self.Panel2.Align := alTop;
  self.Panel2.Height := trunc(0.5 * self.Height);
  self.Panel3.Align := alTop;
  self.Panel3.Visible := true;
  self.Panel4.Visible := true;
  self.Panel4.Align := alClient;

end;
Form1中有4个panel,panel1, panel2, panel3,panel4从上到下的顺序,按照事件的不同,来改变其中几个的Align和visible属性,但是保持其相对位置不发生变化,,当点击N1->点击N2->点击N1后,panel3和panel1却互换了位置?请帮忙看看问题出在了那里?谢谢

回复列表 (共4个回复)

沙发

我把你的代码贴进去

点N1    panel1紧贴上方,下面是panel2
点N2    panel2下方出现了3 4
再点N1  视觉效果同第一次点N1。。

板凳

顺便问下,你的意思是,你再次点N1时
panel3出现了,而panel1不见了??

3 楼

我再重新叙述一下:
    窗体Form1在显示的时候,所有panel的顺序从上到下依次是:panel1、panel2、
panel3、panel4,称为初始状态。点击N2->点击N1,其实点击N1就是把N2事件所改变
的状态转回到初始状态,但是点击N1后,Form1上panel的位置从上到下依次为:panel3、panel2、panel1、panel4,不知道什么原因。

4 楼

self.Panel1.Align := alTop;
  self.Panel2.Align := alTop;
  self.Panel2.Height := trunc(0.5 * self.Height);
  self.Panel3.Align := alTop;

把button1click这里的panel3.align:=altop和panel1.align:=top换一下试试

我来回复

您尚未登录,请登录后再回复。点此登录或注册