Cita:
Empezado por gushynet
...
Al González me sugirio la siguiente sintaxis:
Código Delphi [-]o2 := TClaseBase(o1.ClassType).crear(...)
pero no funciona asi que probe la referencia de la clase en lugar de la clase base:
Código Delphi [-]type TClaseBaseClass = class of TClaseBase; ...... o2 := TClaseBaseClass(o1.ClassType).crear(...)
y si funciona. Mi duda es porque funciona asi y no como me sugirio AI Gonzalez ya que encuentro mas coherente y mas intuitiva su solucion que como yo lo he hecho. Que diferencia hay entre usar TClaseBase y TClaseBaseClass?
...
|
Ahora me percato de la tremenda omisión que tuve. No funcionaba como originalmente lo escribì porque el compilador comprende una expresión de ese estilo como un molde de tipo cuyo resultado es una instancia, no una clase (estaba forzando que el compilador tratara a una clase como un objeto
).
Como lo haces después es realmente una sintaxis adecuada para lograr un molde de tipo de clase.
Saludos desde el "ciber" de mi nuevo vecindario.
Al González.