【问题标题】:is there a way in delphi 2009 to make form controls private?delphi 2009 中有没有办法将表单控件设为私有?
【发布时间】:2010-03-16 15:49:29
【问题描述】:

delphi 2009 中有没有办法将表单控件设为私有?例如:如果我在设计时添加标签,我希望表单之外的代码无法访问标签。

(delphi 2010 有这个吗?)

【问题讨论】:

    标签: delphi delphi-2009


    【解决方案1】:

    设计时控件不能设为私有。必须发布它们才能使 DFM 流式传输正常工作。

    【讨论】:

    • 这是我的经验,但我希望听到在 d2010 中发生了变化,或者在 d2009 中有一种我没有听说过的方法来做到这一点。谢谢你的回答!
    • 您必须在代码中手动实例化和初始化控件。但随后您将失去设计时支持。除非您使用将 DFM 内容转换为可编译源代码的第三方插件/专家。 GExperts 有这样的插件可用。
    • 是这样想的。感谢您提供的信息丰富的 cmets 以及您与 Team B 和 SO 的所有工作!
    • 由于 Delphi 2010 有属性,如果在未来的版本中可以通过属性指定表单设计器中组件的可见性,那就太好了。例如,标签可能位于私有部分,但具有 [DesignerVisible] 属性,以便表单设计者找到它。我假设表单设计者使用 RTTI 来工作,所以乍一看改变它并不难。此外,在升级旧表单时,它会自动将 [DesignerVisible] 添加到现有表单。无论如何,只是一个想法!
    • 是的,表单设计器使用 RTTI 来获取其信息。尽管 2010 引入了一种新的扩展 RTTI,它为非发布成员输出信息,但 DFM 系统仍然仅基于已发布项目的 RTTI。也许在下一个版本中,这会改变,谁知道呢。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2018-10-07
    • 2019-05-06
    • 2018-12-20
    • 1970-01-01
    • 2021-11-18
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多