Cita:
|
Empezado por moesis
...El problema surge cuando intento acceder a las propiedades públicas del formulario TFormulario y no son visibles, algo totalmente lógico. He leido que puedo obtener el nombre de la clase base como string, y la clase como un pointer a TClass, pero ¿Cómo podría realizar un cast en tiempo de ejecución para que reconozca los métodos de TFormulario?
|
No acabo de entender (del todo) lo que explicas, pero creo que existen dos formas de poder accedre a los métodos de TFormulario en ejecución, contando que no puedes hacer un CAST, debido a que en el TfrmBrowser no sabes cual es la clase real de TFormulario (debido a que va a ir cambiando):
(1) La primera forma es que todos tus TFormulario deriven de un TFormBase, de forma que los métodos estén definidos en TFormBase como virtual (y abstract, si es necesario) y luego en los TFormulario se redefinan utilizando override; Eso te permitiría llamar a los métodos de TFormBase y estaría ejecutando los de los formularios derivados (por el override).
(2) La otra opción es utilizar RTTI; Para ellos debes definir todos los métodos que vayas a utilizar en la parte
published del formulario y accederlos vía RTTI utilizando el nombre del método. En éste hilo puedes encontrar un ejemplo:
http://www.clubdelphi.com/foros/show...05&postcount=2
Si necesitas más, ya dirás,...