我用
frm_main:=Tfrm_main.Create(SELF);
frm_main.show;
自我创建了一个窗口,但每次建立很显然都是叠在一起没有层次感,如何打开一个窗口有个错位,有层次感,比如新窗口的位置是上一个窗口偏右下点了

解决方案 »

  1.   

    那么,你自己建一个全局变量,每次手工修改一下Form的位置,就可以了。
    比如
    var
      Left, Top : Integer;Left := 0;
    Top := 0;frm_main.show;
    frm_main.Left := Left;
    frm_main.Top := Top;
    Inc(Left, 20);
    Inc(Top, 20);
    如法炮制就可以了。
      

  2.   

    怎么会呢,你这样试试
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      form1:=tform1.Create(self);
      form1.show;
      form1.left:=self.left+10;
      form1.top:=self.top+10;
    end;
      

  3.   

    将Form的属性Position设为poDefaultPosOnly可以基本达到你的层次感效果.比如建立了个Form1,在控制面版上设它的Position:=poDefaultPosOnly;
    然后放个Button测试
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TForm1.Create(self) do
        Show;
    end;
      

  4.   

    只要你定义你要show出的窗体的位置就可以体现出层次感来的
      

  5.   

    var
      Left, Top : Integer;
    是全局变量。