![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Muchas gracias Neftali
¡Muchas gracias!
![]() Ahora me lo leo. Ahora el misterio es averiguar cómo hago el "casting" a esa clase y cómo uso sus métodos públicos y demás. En ello estoy ![]() |
|
#2
|
|||
|
|||
|
Una cosa más
Teniendo ya esto...
¿cómo hago para acceder a los métodos de la clase? un WITH claseFinal AS clase ¿Donde claseFinal es TObject y clase es TClasePrueba? ¿Cómo inicializo la clase? Estoy algo liado con esto ya que sólo veo ejemplos con Forms... ![]() Gracias. |
|
#3
|
|||
|
|||
|
No sé si he explicado bien mi duda.
Quizás es que sigo sin entender bien para qué valen los famosos BPLs. En los ejemplos que siempre leo un BPL siempre lleva consigo especializaciones de objetos típicos como Forms o así. Pero... cuando la clase o clases que van en el BPL son mías y son de lógica de negocio como la que explico arriba... Una vez cargado el BPL en ejecución, ¿cómo hago para crear una instancia de esa clase y que el compilador me reconozca que es de ese tipo y que sepa de los símbolos de la misma (sus métodos, etc.)? No encuentro manera. En cambio, si hago uno uses UClasePrueba y añado el .bpl como componente a lo bestia en la opción del proyecto, ya sí que me lo ve. La cuestión es, ¿cómo hacer esto programáticamente en el código? ¿No es igual hacer un LoadPackage de un paquete que registra sus clases a poner la opción del .bpl en el proyecto y poner el uses? ¿Qué más me falta? Leo libros sobre Deplhi y tutoriales y sólo veo que siempre que se usa LoadPackage es para recoger una clase que especializa a una que ya se tiene en la aplicación (un formulario específico por ejemplo) y que por lo tanto, con hacer una instancia sobre un tipo base que conozco y al cuál hace override a sus métodos le vale. ¿Es ese el alcance del uso de los .bpl? No puede ser así puesto que evidentemente hemos quedado que el .exe se lleva sólo el .bpl y se lleva toda la compilación y linkado de símbolos y demás del paquete. ¿Dónde puedo leer más sobre RTTI? |
|
#4
|
|||
|
|||
|
Más del mismo pesado...
![]() Si sigo algunas indicaciones de RTTI hay una manera que sí em funciona, pero, ¿es la única? Si hago que la clase sea así:
Y lo llamo como:
¿Y si quién diseño los .bpl no utilizó este metodología? ¿Es la única posible? Seguimos leyendo. Muchas gracias. Saludos. |
|
#5
|
||||
|
||||
|
Cita:
Te lo quería comentar, porque en tu ejemplo no estabas utilizando propiedades, pero tal y como estaba me servía para mostrarte la forma de acceder a procedimientos y funciones. Para acceder a las propiedades es mucho más fácil tal y como has hecho tú, ya que delphi provee de la unit TypInfo que posee mátodos para ello (revísala si todavía no lo has hecho). El único inconveniente que te puedes encontrar es que, si quien diseñó los BPL's utilizó propiedades/métodos Public en lugar de Published (que en muchos casos son suficientes); En ese caso no podrás acceder a ellos, ya que para RTTI necesitas obligatoriamente que sean Published.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
Muchas gracias Neftali!
![]() Te debo más de una. Ahora mismo me miro la opción sin properties, a ver que tal me va. Saludos. |
|
#7
|
||||
|
||||
|
Cita:
En el caso de Nombre y Edad yo los veo como propiedades.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#8
|
||||
|
||||
|
Cita:
Hay que realizar un CAST de la clase para acceder a los métodos vía RTTI. Aquí te envío un ejemplo para que veas cómo acceder a los métodos de la clase TClasePrueba. Cita:
Puedes encontrar cosas en CodeCentral de Borland: http://cc.borland.com/Item.aspx?id=15565 Aquí tienes una serie de 5 artículos: http://www.suite101.com/article.cfm/...gramming/60117 http://www.suite101.com/article.cfm/...gramming/60799 http://www.suite101.com/article.cfm/...gramming/62001 http://www.suite101.com/article.cfm/...gramming/63526 http://www.suite101.com/article.cfm/...gramming/64922 Este bastante esquemático: http://www8.pair.com/rmorris/rtti.htm Este tiene códigos de ejemplo: http://www.blong.com/Conferences/Bor...RTTI/CB140.htm Este es sencillo (revisa tb los comentarios): http://hallvards.blogspot.com/2006/0...lass-rtti.html Bueno aquí tienes algunos; Si buscas por internet seguro que encuentras más...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Acceso a DLL | aggg63 | Varios | 19 | 18-02-2013 20:49:54 |
| Equivalencia a los bpls en .NET | poliburro | .NET | 5 | 02-10-2006 22:21:49 |
| Acceso a BD | Danielle | SQL | 3 | 29-04-2006 08:40:20 |
| Acceso a SP | tgsistemas | Conexión con bases de datos | 1 | 14-09-2004 18:26:34 |
| Creación de BPLs y DCPs | GIVO | Varios | 1 | 19-06-2003 19:52:36 |
|