FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
hola bucanero.
Sugiero que utilices la RTTI. Para ello debes cambiar tu codigo de la unidad configs asi:
y tus unidades descendientes, algo asi:
|
#2
|
||||
|
||||
Igual, amigo bucanero, creo que vas por un lado que no es. Lo que tu quieres implementar, puede salir mejor utilizando interfaces ==> El problema con el caso específico que propones es que las interfaces no admiten constructores....
|
#3
|
||||
|
||||
Al fin no nos tomaron la foto donde TopX, Tu y yo estábamos revisando este hilo.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#4
|
|||
|
|||
Hola Movorack, realmente no se a que te refieres con esto ....
|
#5
|
||||
|
||||
Es que Movorack, Topx y yo, trabajamos en el mismo piso.... |
#6
|
||||
|
||||
#7
|
|||
|
|||
Gracias gatosoft por responder
Cita:
Viendo tu código me encuentro que en la linea donde debe de buscar y localizar la classe devuelve NIL y no la encuentra. Cita:
Pero aquí aparece otro problema, y es que el procedimiento RegisterClass(AClass: TPersistentClass) requiere que la clase a registrar sea descendiente de TPersistentClass, y yo estoy intentando registrar una clase descendiente de TINIFile que a su vez es una una classe descendiente directamente de TObject y por este motivo el compilador da el siguiente error E2010 Incompatible types: 'TPersistentClass' and 'class of TMyIniFile' Cita:
Porque mi idea final a parte de lo ya explicado es sobre-escribir los métodos de lectura/escritura de mi clase descendiente de TINIFile, para que en vez de guardar los datos en un fichero los guarde directamente en la BBDD, manteniendo la máxima compatibilidad con el componente original para que en determinados casos que no quiera utilizar mi componente propio y/o guardar en la BBDD puede usar directamente un TINIFile. |
#8
|
||||
|
||||
Cita:
en el hilo se dice: Cita:
Cita:
Existe una técnica que te puede servir y es la de interceptores, pero como todo, no es para abusar de ella. y funciona mas o menos asi: En la clausula Uses defines la unidad Inifiles, que contiene la implementación nativa del componente. Después, defines la clase "interceptora" TIniFile (Tiene el mismo nombre de la nativa) la cual hereda de System.IniFiles.TIniFile (debes especificar la unidad). Y en esta nueva clase, puedes definir nueva funcionalidad y sobreescribir la existente.
en tu caso, modificarias tu codigo aqsí..
revisa |
#9
|
||||
|
||||
igual, no está de mas pensar en la solución tradicional: Definir una clase derivada de TIniFile, con la funcionalidad que requieres y a partir de ella definir los descendientes de los que hablas.
Cuando tienes una clase padre y muchos posibles descendientes que desconoces, es cuando comienzas a pensar en clases abstractas o en interfaces. |
#10
|
|||
|
|||
Muchas gracias gatosoft por toda la información aportada
Cita:
Cita:
Cita:
Después he realizado una pequeña modificación a tu código, para que no sea necesario hacer la búsqueda de la clase por su nombre, ya que a priori se tiene ya la clase y así se pueda utilizar directamente sin necesidad de hacer su búsqueda. Y así, si ha funcionado también:
Gracias nuevamente a todos los que han dedicado parte de su tiempo a este hilo Un saludo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear objetos mediante su clase | coso | Trucos | 0 | 05-12-2008 23:37:15 |
duda al crear un descendiente de tpanel | hibero | OOP | 1 | 23-05-2008 21:07:52 |
problema crear dll con clase | rzf1983 | Varios | 9 | 08-11-2007 22:56:52 |
crear un evento en una clase? | chelox | OOP | 4 | 06-06-2007 20:14:20 |
Crear clase. Basico de POO. | DarkByte | OOP | 17 | 24-08-2005 17:37:21 |
|