我需要将一个包中定义的大量 Delphi 组件更改为另一个包中的类似组件。大部分繁重的工作可以通过替换 DFM 文件中的文本(组件类型和属性)来完成 - 当然保存为文本。
我已经搜索了 Stackoverflow 和 Google,现在正在从http://www.felix-colibri.com/papers/colibri_utilities/dfm_parser/dfm_parser.html改编 Felix Colibri DFM 解析器
我在解析器阻塞的 DFM 文件中遇到了一个“功能”:在类型规范之后的 [number]s,如下所示:
inherited DialoogEditAgenda: TDialoogEditAgenda
ActiveControl = PlanCalendar
Caption = 'Agenda'
[snip]
inherited PanelButtons: TRzPanel
Top = 537
[snip]
inherited ButtonCancel: TRzBitBtn [0] <== *here*
Left = 852
[snip]
end
object CheckBoxBeschikbaarheid: TRzCheckBox [1] <== *here*
Left = 8
[snip]
end
inherited ButtonOK: TRzBitBtn [2] <== *here*
Left = 900
[snip]
end
end
inherited PageControl: TRzPageControl
Left = 444
[snip]
end
object PanelBeschikbaarheid: TRzSizePanel [2] <== *here*
Left = 967
[snip]
end
object PanelScheduler: TRzPanel [3] <== *here*
Left = 23
Top = 22
[...]
这些 DFM 中的许多都被大量继承(我已经为此调整了 Colibri 的代码),但是一个带有继承的小型测试应用程序未能在 DFM 中生成 [number] 个。
在扩展解析器代码之前我的问题是:有谁知道这些 [number] 来自哪里,因此,我可以在解析 DFM 文件之前删除它们吗?
谢谢
简