我将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;
对过程中的最后两行进行了注释。如果没有它们,代码可以工作,但新选项卡不是顶部的选项卡。我必须点击它才能登顶。
但如果我取消注释这两行,程序会崩溃,说明不可见的对象无法聚焦。
关于如何解决这个问题的任何建议?
非常感谢!
答案 0 :(得分:3)
您需要设置页面控件的ActivePage
属性。像这样:
PageControl.ActivePage := NewTab;
答案 1 :(得分:3)
PageControl具有属性ActivePage
和ActivePageIndex
,您可以将其用于此目的。在这种情况下,ActivePage
是最方便的,因为您可以调用
PageControl1.ActivePage := NewTab;