【发布时间】:2019-02-05 15:32:06
【问题描述】:
我可以将 TTabItem 添加到 TTabControl,我可以将 TTabItem 的子类添加到 TabControl,但我不能将 TTabItem 的子类添加到 TabControl。
示例 Firemonkey 应用程序 - 带有 TTabControl 的表单:
type
TTabItem_subclass = class (TTabItem);
TTabItem_sub_subclass = class (TTabItem_subclass);
procedure TForm1.FormCreate(Sender: TObject);
procedure add_tab (t: TTabItem);
begin
t.Text := t.ClassName;
t.Parent := TabControl1
end;
begin
add_tab (TTabItem.create (TabControl1)); // <-- works
add_tab (TTabItem_subclass.create (TabControl1)); // <-- works
add_tab (TTabItem_sub_subclass.create (TabControl1)); // <-- fails
end;
当应用程序运行时,TTabItem_sub_subclass 不显示:
我在 XE5 和东京都试过这个,结果相同。我错过了什么?
【问题讨论】:
-
如果你添加第二个
TTabItem_subclass而不是TTabItem_sub_subclass,that 会失败吗? -
第二个 TTabItem_subclass 工作正常。我只看到子类的问题。
-
我可以在 D10.2.3 中重现您的问题,但无法立即看出为什么从 TTabItem_subclass 下降会导致此问题,但我不是 FMX 专家。更新:我想我已经发现为什么子子类不可见,TTabControl 代码中的逻辑阻止它被绘制,但我还没有弄清楚如何修复这个。
标签: delphi