Ver Mensaje Individual
  #6  
Antiguo 24-06-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Román.

Lo que anotas también a mí me ha llamado la atención. He visto una buena cantidad de clases privadas en la VCL de las cuales a veces se necesita, o al menos se antoja, crear descendientes.

El caso que planteas es un tanto especial por, como bien señalas, la existencia del método virtual CreateEditor en TCustomGrid y el "descaro" que tiene TDBGrid para redefinir ese método haciendo que devuelva un objeto de clase TDBGridInplaceEdit. Una clase de la que no podemos crear descendientes.

Esta reflexión me ha hecho plantearme una pregunta: ¿es realmente imposible crear una clase hija de una que se encuentre declarada en la sección Implementation de otra unidad? Es obvio que el compilador no lo permite, pero qué interesante sería poder crear una "VMT artificial" en tiempo de ejecución, o algo por el estilo que pudiera sacarle la vuelta a ese obstáculo.

Tras el problema que has descrito estoy tentado a investigar y probar algunas ideas, aunque sea sólo para ver hasta qué punto es posible* y qué tanta utilidad podría arrojar.

Espero encontrar un espacio para el experimento...

Saludos.

Al González.

*Por ejemplo se descarta la posibilidad de hacer referencias a elementos no existentes en la clase base, u obtener la dirección de la clase privada sin haberse creado al menos una instancia de ella previamente.
Responder Con Cita