J'ai besoin d'accéder à une valeur de variable de classe strictement privée d'une classe en utilisant son instance et un décalage vers la variable.
Jusqu'à présent, j'ai essayé ceci, vérifiez cet exemple de classe
type
TFoo=class
strict private class var Foo: Integer;
public
constructor Create;
end;
constructor TFoo.Create;
begin
inherited;
Foo:=666;
end;
// cette fonction fonctionne uniquement si je déclare la variable foo comme
// strict private var Foo: Integer;
function GetFooValue(const AClass: TFoo): Integer;
begin
Result := PInteger(PByte(AClass) + 4)^
end;
Comme vous pouvez le voir, la fonction GetFooValue ne fonctionne que lorsque la variable foo n'est pas déclarée comme une variable de classe.
La question est comment dois-je modifier la GetFooValue
pour obtenir la valeur de Foo
lorsqu'elle est déclarée comme strict private class var Foo: Integer;