Das Ganze scheitert schon am Konzept. Du kannst nicht die Adresse einer privaten Prozedur auslesen. Eine private Prozedur ist vom Konzept her (ähnlich wie protected) nur INNERHALB eines Objektes verwendbar. Du kannst sie also auch nicht von außen aufrufen, weil es so aussieht, als würde sie gar nicht existieren. Somit kann sie von
RTTI nicht gefunden werden.
Das stimmt so nicht. Mit Delphi 2010 (welches der TE nutzt) kann man von private bis published alles von einer Klasse über
RTTI abrufen, sofern dies eingestellt wurde. Dafür gibt es spezielle Compiler Direktiven. Nützt dem TE natürlich nix, da wahrscheinlich nicht mit diesen
RTTI Einstellungen kompiliert wurde und er den Source nicht hat (dann könnte er ja auch gleich die Methode fixen
)
So weit es möglich ist sollte man eh uaf solche Hacks verzichten. Denn diese Lücke könnte irgendwann geschlossen werden
Ich bin der Meinung, man sollte lieber darauf verzichten, beliebige Sachen als privat zu deklarieren, wenn es keinen echten Grund dafür gibt.
Imo wird eher andersrum nen Schuh draus, es sollte nur public sein, was man auch von außen aufrufen soll/darf/muss. Und protected nur, was vom Design her dafür vorgesehen ist, in abgeleiteten Klassen modifiziert zu werden.