如何使新(动态)选项卡成为活动页面

时间:2012-12-10 10:32:34

标签: delphi lazarus

我将Lazarus和Delphi都标记为两者似乎与我迄今为止所做的一切相似(100%)。但我的开发平台是Lazarus。

我正在动态创建一个这样的标签页:

procedure TForm1.cmdTabButtonClick(Sender: TObject);
var
  NewTab: TTabSheet;
begin
  NewTab := TTabSheet.Create(PageControl1);
  NewTab.PageControl:= PageControl1;
  NewTab.Caption:='hi';
//  NewTab.TabVisible:=true;
//  newtab.SetFocus;
end;

对过程中的最后两行进行了注释。如果没有它们,代码可以工作,但新选项卡不是顶部的选项卡。我必须点击它才能登顶。

但如果我取消注释这两行,程序会崩溃,说明不可见的对象无法聚焦。

关于如何解决这个问题的任何建议?

非常感谢!

2 个答案:

答案 0 :(得分:3)

您需要设置页面控件的ActivePage属性。像这样:

PageControl.ActivePage := NewTab;

答案 1 :(得分:3)

PageControl具有属性ActivePageActivePageIndex,您可以将其用于此目的。在这种情况下,ActivePage是最方便的,因为您可以调用

PageControl1.ActivePage := NewTab;