Вы можете использовать точку расширения DefineProperties
, чтобы помочь переносить ваши файлы .dfm.
type
TMyComponent = class(...)
private
procedure ReadPropName(Reader: TReader);
protected
procedure DefineProperties(Filer: TFiler); override;
published
property MyPropName: string read ... write ...;
end;
procedure TMyComponent.DefineProperties(Filer: TFiler);
begin
inherited;
Filer.DefineProperty('PropName', ReadPropName, nil, False);
end;
procedure TMyComponent.ReadPropName(Reader: TReader);
begin
MyPropName := Reader.ReadString;
end;
Это позволит вашему новому компоненту читать старые файлы .dfm сстарое имяКогда файл .dfm будет записан снова, будет использовано новое имя свойства.
Обратите внимание, что при таком методе компонент может читать файлы .dfm, содержащие либо старое имя свойства, либо новое имя свойства.так что вы можете мигрировать постепенно, если хотите.После того, как вы перенесли все ваши файлы .dfm, было бы целесообразно удалить такой код для аккуратности.
Документация Delphi охватывает эту предметную область, хотя и с несколько иной точки зрения, в разделе Хранение.и загрузка неопубликованных свойств раздел Руководство по написанию компонентов .