Ver Mensaje Individual
  #11  
Antiguo 16-07-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Gracias gatosoft por responder

Cita:
Empezado por gatosoft Ver Mensaje
hola bucanero.

Sugiero que utilices la RTTI. Para ello debes cambiar tu codigo de la unidad configs asi:
En cuanto a tu sugerencia de usar la RTTI es por donde en un principio pensé que podría ir la solución a este problema, aunque en estos temas de la RTTI me pierdo...

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:
Empezado por gatosoft Ver Mensaje
Código Delphi [-]
      RttiType := RttiContext.FindType(ClassIniFileName) as TRttiInstanceType;
El problema imagino que viene de que para que la pueda localizar hay que registrar previamente la clase.
Código Delphi [-]
  RegisterClass(TMyIniFile);
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:
Empezado por gatosoft Ver Mensaje
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....
En cuanto a esta propuesta... sinceramente, no veo como aplicar una solución...

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.
Responder Con Cita