Странные [числа] в файлах Delphi DFM - происхождение и необходимость?

Мне нужно заменить большое количество компонентов Delphi, определенных в одном пакете, на аналогичные компоненты в другом пакете. Большую часть рутинной работы можно выполнить, заменив текст (типы и свойства компонентов) в файлах DFM — разумеется, сохранив их как текст.

Я провел поиск в Stackoverflow и Google и сейчас адаптирую парсер Felix Colibri DFM из http://www.felix-colibri.com/papers/colibri_utilities/dfm_parser/dfm_parser.html

Я наткнулся на 'функция' в файлах DFM, которую синтаксический анализатор подавляет: [число] с после спецификации типа, например:

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.

Мой вопрос перед расширением кода анализатора: кто-нибудь знает, откуда берутся эти [числа] и, следовательно, могу ли я удалить их перед разбором файлов DFM?

Спасибо

Jan

35
задан Jan Doggen 19 January 2013 в 12:41
поделиться