【问题标题】:Delphi - comprehensive list of properties of objectDelphi - 对象属性的综合列表
【发布时间】:2018-12-23 12:13:17
【问题描述】:

对于某些特定对象,我想要复制(作为文本)出现在 Delphi 的 Object Inspector 中的属性和事件列表。

我的目的是能够将其粘贴到电子表格中,能够为每个项目添加注释,添加与相关功能相关的属性分类,或与其他对象进行比较(例如与继承祖先对齐或后代)。

据我所知,Object Inspector 没有这样的复制功能。那么实现这一目标的另一种快速方法是什么?

不管怎样,我有 Delphi 的 1 到 7, 2007、XE、XE2 和 Tokyo(后者,只有 Starter)。

基于前几个 cmets 的说明:

我已经知道出现在对象检查器上的项目是类的已发布属性,因此可以从源文件中检索信息。但是,发布的属性可能分布在多个类中,实际上是多个源文件(由于继承),并且项目本身不是特别方便的格式。都是可以克服的。我只是希望有一个更快更简单的方法,因为 Object Inspector 的显示已经非常接近我想要的了。

【问题讨论】:

  • 那是源代码。 Object Inspector 中显示的是类声明的 published 部分中的内容。
  • @KenWhite 是的,我知道 Object Inspector 中的内容来自源代码。源代码为文本,可复制粘贴。甚至可以通过工具对其进行解析,以将其转换为更方便的格式。并遵循继承逻辑来组装所有属性,而不仅仅是最子单元中的属性。这就是我得到的,或者一些类似的想法——据我所知,可能有一个工具可以利用 IDE 已经提供的服务来解析 Object Pascal 或其他任何东西。
  • 你不能在这里要求工具推荐,根据help center
  • 无论谁 -1'ed 我的问题,请评论为什么?对SO来说是题外话吗?这是一个已经解决的问题吗?有什么问题?
  • 您需要实现与对象检查器相同的功能。它通过使用运行时类型信息 (RTTI) 来工作。基本上,您需要 1. 枚举对象的所有已发布属性并 2. 读取它们的值。这可能不像听起来那么容易,因为属性本​​身就是对象。此外,在 IDE 中可能会为给定的类类型 + 属性类型注册特殊编辑器。但是阅读 RTTI 示例会让你走得更远。

标签: delphi


【解决方案1】:

由于我没有足够的声誉来发表评论,所以我写这篇文章作为答案。 我认为 gwideman 正在寻求一种在 Delphi 的 IDE 中进行复制的方法,并且无需使用 RTTI 进行任何编码。

在某种程度上,这是可能的。您需要做的只是选择一个对象并复制 (Ctrl-C)。之后,您可以将其粘贴到任何文本编辑器甚至 Excel 中。应该是这样的:

object Button1: TButton
  Left = 60
  Top = 510
  Width = 80
  Height = 25
  Anchors = [akLeft, akBottom]
  Caption = 'Save'
  Enabled = False
  TabOrder = 0
  OnClick = Button1Click
end

请注意,甚至包括事件处理程序。

您可能还注意到该列表相当短。这是因为跳过了具有默认值的属性。如果您需要所有属性,这可能是个问题。但是,如果您只想评论您的设置,这可以节省时间并且是最好的。

如果您需要完整的已发布属性列表,可以在 Delphi 的帮助中轻松获得。喜欢TSpeedButton

最后,如果在表单上右击,点击“View as Text”,就可以得到表单及其所有对象的属性。

【讨论】:

  • 这是一个有用的建议!我忘记了表单文本模式/dfm。扩展您的答案,对于正在研究的组件,可以设置所有属性(在 Object Inspector 中),以便所有属性都保留在表单中。不理想,但迄今为止最好的无代码方法。至于帮助——是的,但我遇到了在帮助以外的地方记录的组件(因为帮助平台是一个移动的目标),或者文档不完整,或者根本没有记录。
  • 我认为这行不通。如果设置值等于默认值,Delphi 将其删除。即使您在“以文本形式查看”模式下添加该行,在切换到“以表格形式查看”后它也会被删除。
  • 对 - 您必须将每个属性更改为默认值以外的值,这样它才会被持久化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 2015-06-14
  • 2014-05-03
  • 2012-06-23
  • 1970-01-01
相关资源
最近更新 更多