我标记了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;


该过程的最后两行被注释。没有它们,代码将起作用,但是新选项卡不在最上面。我必须单击它才能放在顶部。

但是,如果我取消这两行的注释,程序将崩溃,表明不可见的对象无法获得焦点。

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

非常感谢!

最佳答案

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

PageControl.ActivePage := NewTab;

08-19 22:55