Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: TypeInfo über IID oder Klasse (und RTTI)
21. Jul 2005, 16:24
@Barfoos:
schau dir mal in SysUtils.pas die Implementation von Supports() genauer an. Es ginge also schon aber du benötigst ein alloziertes Object statt einer Klasse und wenn das Object dieses Interface unterstützt wird intern schon eine neue Refernez auf diese Interface gezogen. Das bedeutet der Code von Supports() ist keine passive Abfrage ob eine Klasse/Object ein Interface unterstützt sondern im gegenteil eine aktive Abfrage indem testweise das Interface angefordert wird.
@Choose: ich glaube schon das Delphi auch weiterhin meinen Trick unterstützen wird. Immerhin handelt es sich hier um langjähriges und altbewährtes Vorgehen innerhalb des Compilers. Sollte sich daran was ändern so würde das für Borland einen immensen Aufwand an Änderungen im Compiler bedeuten.
Man kann ja per Compiler Defines die entsprechende Compilerversion in meinem Source abfragen und falls der Source dann auf einer neuen Version compiliert wird gibt man im Source eine Fehlermeldung aus. Man muß also dann erstmal einen kleinen Testcode mit der neuen Version laufen lassen, feststellen ob's noch funktioniert und dann gegebenfalls die neue Version in die Compiler Defines einbauen. So stellt man auf alle Fälle sicher das man diesen sensiblen Code nicht ohne Warnungen verwendet.
Ich vermute mal das dein obiger Beispiel Source nur eine verkürzte Variante darstellt, d.h. das du im fertigen Source eben dynamisch zur Laufzeit diese TypInfo-Überprüfungen durchführen möchtest (anders macht deine Frage eigentlich keinen Sinn). Nun, und in diesem Szenario sehe ich nur den Weg über meine Funktion zur Iteration der TypInfos.
Gruß Hagen
|