![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola
Se me ocurre que podrias definir una jerarquia de clases, para poder aprovechar el polimorfismo. *definir una clase de tipo TMiPDF, que tenga un atributo de tipo TPDF *definir otra clase de tipo TMiAcroPDF, que tenga un atributo de tipo TAcroPDF *definir otra clase Padre, en la que se definen las interfaces de los metodos comunes a las dos clases anteriores (heredan de esta clase Padre) De esta forma podes crear instancias de cualquier clase (TMiPDF o TMiAcroPDF) y referenciarlas a traves de una variable tipo Padre. Espero que te sirva. Saludos
__________________
Al infierno se llega por atajos. |
|
#2
|
|||
|
|||
|
No se si te entendi bien, pero llegue a pensar que podria ser algo asi:
Código:
TSuperPDF= class(tobject)
PDF6: TPdf;
PDF7: TAcroPDF;
end;
Que les parece?? saludos
__________________
Delphi fan |
|
#3
|
||||
|
||||
|
No exactamente. Como lo propones tendrías que estar verificando cuál usar en cada método de TSuperPdf.
Lo que te propone juanmdq (excelente idea por cierto), es más del estilo:
La clase TSuperPdf sólo definiría los métodos comunes o similares pero no los implementa (virtual; abstract) Las clases TPdf60 y TPdf70 redefinen esos métodos y los implementan usando los métodos de su respectiva componente privada Pdf. Al comienzo de la aplicación determinas qué instancia construir y la colocas en una variable de tipo TSuperPdf:
Así, además, estarás listo para cuando salga la versión 8: sólo tendrásque crear la correspondiente claseTPdf80 descendiente de TSuperPdf y el resto del código en tu aplicación no cambiará. // Saludos |
|
#4
|
|||
|
|||
|
cree esta unit a ver que les parece:
no puse en la implementacion las properties pero tengo que implementar las correspondientes read y write. como lo ven???? Otra cosa, en la definicion de TPdf encontre: Código:
TPdf = class(TOleControl) Código:
TAcroPDF = class(TOleControl) SaLuDoS
__________________
Delphi fan |
|
#5
|
||||
|
||||
|
Cita:
pero para usar SuperPdf vuelves a requerir del moldeo en cada caso: SuperPdf as TPdf o SuperPdf as TAcroPdf // Saludos |
|
#6
|
||||
|
||||
|
Esta es una pregunta personal, pero creo que viene muy bien al caso, por eso la añado a este hilo.
Si la version 7 implementa una nueva propiedad o método,¿ donde se crearía esa propiedad? - Si la implemento en TSuperPDF, tendría que proporcionar mensajes de error en todas las versiones excepto en la 7.0 - Si la implemento en TPDF70, tendría que hacer un cast para poder acceder ¿no? Un saludo |
|
#7
|
||||
|
||||
|
Cita:
Un saludo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|