【问题标题】:Can FireMonkey frames be created dynamically?FireMonkey 框架可以动态创建吗?
【发布时间】:2023-12-16 07:01:01
【问题描述】:

FireMonkey 可以选择使用框架(不是 TFrame,它是一种特定的视觉组件),它基本上是可以重复使用的视觉组件的集合。

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Working_with_Frames

但是,文档中没有关于动态创建框架实例的内容,而不是在设计时将它们放置在 TForm 上。有没有办法动态创建框架的实例?当我尝试执行此操作时,在尝试访问相关框架的属性时出现错误。

【问题讨论】:

  • 是的,您可以动态创建框架。没有minimal reproducible example 就无法说出你为什么会出错
  • 这就是我需要知道的全部内容 - 我不想去疯狂追逐试图找出什么是行不通的。如果您将此添加为答案,我会将其标记为正确。
  • 仅供参考,我现在可以动态创建模板。我应该在这里注意,似乎框架对象需要在创建后立即手动分配一个唯一的 Name 属性,至少在使用 C++ 时,否则创建的下一个相同类型的框架对象将尝试使用与第一个相同的名称.
  • "FireMonkey 可以选择使用框架(不是 TFrame,它是一种特定的视觉组件)" - 它们确实是一回事。您链接到的网址甚至是这样说的。
  • @DaveNottage "是的,您可以动态创建框架" - 这就是答案

标签: delphi firemonkey c++builder


【解决方案1】:

TFrame是一个简单的TControl,你可以像往常一样创建和使用它的Tcontrol组件。 如果您将 TFrame 更改为 TControl - 没有任何变化,因为它是相同的。

var
  MyFrame: TFrame;

begin
  MyFrame := TFrame.Create(Self); 
  MyFrame.Parent := Self; 

Self 是 TForm 或任何其他 TControl

【讨论】: