delphi - 如何使新的(动态)选项卡成为事件页面

标签 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;

过程中的最后两行已被注释。没有它们,代码可以工作,但新选项卡不是顶部的选项卡。我必须单击它才能使其出现在顶部。

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

关于如何解决这个问题有什么建议吗?

非常感谢!

最佳答案

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

PageControl.ActivePage := NewTab;

关于delphi - 如何使新的(动态)选项卡成为事件页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13799140/

相关文章:

delphi - Delphi XE2 中的 TDataModule.ClassGroup 伪属性到底有什么作用?

delphi - 将 Indy TidHttpServer 与其中一张网卡绑定(bind)

delphi - 我的密码有什么保护方案?

image - 如何调整图片大小?

delphi - Delphi 2007 IDE 中禁用了调试按钮。为什么?

delphi - 从文件名中删除路径

delphi - 选择时如何在 TImage 周围绘制矩形

delphi - 如何声明一个函数,该函数采用尚未识别的类型的变量作为参数

combobox - 如何在 Lazarus 的 TComboBox 中通过分配的对象查找项目?

clipboard - 将字符串变量写入剪贴板