Das kann eigentlich nicht gehen. Die Property ist vollkommen gekapselt durch Zugriffsmethode. Dh. es muß garkein private feld geben auf das sich die Property bezieht, sondern die Zugriffmethoden könnten auch einen String dynamsich zusammenbauen erst beim Zugriff auf diese property. Das was Elvis vorschlägt kann und darf nicht funktionieren.
Besser so:
Delphi-Quellcode:
type
TTestCracker = class(TObject)
private
FValue: String;
end;
procedure Test;
var
T: TTest;
begin
T := TTest.Create;
try
TTestCracker(T).FValue := 'Test';
finally
T.Free;
end;
end;
Ansonsten gehts auch noch enfacher
Delphi-Quellcode:
procedure Test;
type
PTestCracker = ^TTestCracker;
TTestCracker = packed record
ClassVMT: Pointer;
// hier alle Felder eintragen die in allen Vorgängerklassen von TTest implementiert wurde,
// oder alternativ einmalig den +Offset aus gehend von TTest.Self auf FValue per Debugger ermitteln und exakt soviele
// Bytes als Dummy[] Array hier einfügen, zb. Offset->FValue ist 32, dann hier Dummy[0..32-4-1] of Byte;
FValue: String;
end;
var
T: TTest;
begin
T := TTest.Create;
try
PTestCracker(T).FValue := 'Test';
finally
T.Free;
end;
end;
Gruß Hagen