我在pagecontrol的OnEnter添加的事件。这个是代码:
procedure TfrmPeoInfo.pgcPageControlEnter(Sender: TObject);
var
  i: Integer;
  tab: TTabSheet;
begin
  for i := 0 to lstPeoIn.Count - 1 do
    begin
      tab := TTabSheet.Create(pgcPageControl);
      tab.Caption := lstPeoIn.Items[i];
      tab.PageControl := pgcPageControl;
 //     pgcPageControl.Pages[i].TabVisible := False;
    end;
 //   pgcPageControl.ActivePage := pgcPageControl.Pages[1];
end;
注释掉的两句是我查资料上的写法,但是都不管用,创建的两个页面还是看不到....求高手指点迷津 啊

解决方案 »

  1.   

    lstPeoIn.Count - 1//你确定这个值不是0?循环执行了?
      

  2.   

    沒問題啊,用Tab键让焦点在pgcPageControl上或者鼠标点里面的控件,就执行這些代码了不过为什么要在OnEnter写?那岂不是每次进入pgcPageControl,都会重新添加页面
      

  3.   

    这个pagecontrol是在一个panel上,程序执行的时候是隐藏的。没想到什么好的处理方法就写OnEnter里面了。tab.PageControl := pgcPageControl;这一句怎么理解的?之前create中不是已经将tabsheet和pagecontrol关联起来了吗
      

  4.   

    tab.TTabSheet.Create(pgcPageControl);//我的理解是,这里指定当pgcPageControl释放时释放tab的内存
    tab.PageControl := pgcPageControl;//这里指定tab所所属PageControl,即显示位置
      

  5.   

    tab.TTabSheet.Create(pgcPageControl);//即设定控件的Owner为pgcPageControl
      

  6.   

    多谢case5166的讲解,现在有点懂了