Delphi: запись в частное поле предка в классе-потомке

Мне нужно исправить сторонний компонент. Класс этого компонента имеет частную переменную, которая активно используется его потомками:

TThirdPartyComponentBase = class
private
  FSomeVar: Integer;
public
  ...
end;

TThirdPartyComponent = class (TThirdPartyComponentBase)
protected
   procedure Foo; virtual;
end;

procedure TThirdPartyComponent.Foo;
begin
  FSomeVar := 1; // ACCESSING PRIVATE FIELD!
end; 

Это работает, потому что оба класса находятся в одном модуле, поэтому они своего рода «друзья».

Но если я попытаюсь создать новый класс в новом модуле

TMyFixedComponent = class (TThirdPartyComponent)
  procedure Foo; override; 
end;

Я больше не могу получить доступ к FSomeVar, но мне нужно использовать его для исправления. И я действительно не хочу воспроизводить в своем коде все это дерево базовых классов.

Не могли бы вы посоветовать какой-нибудь быстрый способ получить доступ к этому частному полю без изменения единицы измерения исходного компонента , если это вообще возможно?

10
задан AstroCB 30 August 2014 в 20:41
поделиться