【问题标题】:Accessing component attribute in embedded TFrame访问嵌入式 TFrame 中的组件属性
【发布时间】:2017-05-22 14:46:18
【问题描述】:

我有一个带有嵌入式 TFrame 的表单和一些具有关联属性的组件(在父表单和框架中)。我可以使用以下方式访问父表单组件属性:

for field in ctx.GetType(frm.ClassInfo).GetFields do
  for attr in field.GetAttributes do...

我尝试使用嵌套在主循环中的以下内容访问框架中的属性:

for subField in ctx.GetType(field.ClassInfo).GetFields do
  for attr in subField.GetAttributes do...

但是,这无法将框架的组件提取为字段,因此当然也无法提取关联的属性。是否可以访问嵌入式框架的组件属性?我正在使用 XE7。

【问题讨论】:

    标签: delphi frames rtti


    【解决方案1】:

    您所做的是询问TRttiInstanceField 的字段(因为这是您字段变量上的ClassInfo 将给您的)

    正确的是使用FieldType 属性:

    for subField in field.FieldType.GetFields do
      for attr in subField.GetAttributes do...
    

    【讨论】:

    • 这是在尝试使用 Knockoff 时出现的 - 绑定到框架中的控件。到目前为止看起来不错 - 我过去曾使用过 KnockoutJS,而您出色的 Knockoff 正是我在 Delphi 中所需要的。
    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2016-05-17
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多