Ver Mensaje Individual
  #12  
Antiguo 31-07-2003
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Reputación: 22
__marcsc Va por buen camino
Hola Roman,

Cita:
Posteado originalmente por roman
lo cual demuestra que MethodAddress funciona sin usar RTTI.
esto ya me lo vi venir cuando delphi.com.ar hizo notar que es un método de TObject, clase de la cual no se genera RTTI.

Lo que yo digo, y que fue lo que me hizo despistar, aunque visto ahora es un hecho independiente, es qué sentido puede tener la existencia de este método en la clase TObject si funciona para métodos published.

Al principio pensaba que seria más lógico que estuviera disponible a partir de TComponent, ya que en teoría solamente se pueden guardar propiedades en un dfm a partir de TComponent (dado que sinó ni tan solo aparecen en el IDE). Recordemos que el help de Delphi dice que no debería haber necesidad de llamar este método directamente ya que Delphi lo utiliza internamente para streaming. ¿Entonces porqué en TObject? ¿No sería más lógico en TComponent o haciendo alguna concesión más en TPersistent que ya está compilada con la directiva {$M+}?

La respuesta radica en que aunque el Delphi no lo necesite hasta TComponent sí que puede ser que a nosotros nos interese hacerlo antes (como es el caso de Rudorf). De hecho, viendolo de este modo TObject es el sitio adecuado ya que significa que podemos crear un descendiente directo que publique algun miembro y utilizar este método.

Saludos.
Responder Con Cita