![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#9
|
||||
|
||||
|
Cita:
Si te fijas, tu necesitarías poder tener TFormEditBase1.Create(Application) TFormEditBase2.Create(Application) ... TFormEditBaseN.Create(Application) según sea el caso. Pero la sentencia debe estar en el formulario base y no en cada descendiente. Entonces requerirías poner la clase del formulario de edición (TFormEdit1, TFormEdit2, etc.) en una variable que tomase uno de estos valores según corresponda. Pero si lees detenidamente verás que es un poco extraño: los valores de dicha variable serían tipos de datos de manera que, ¿cuál sería el tipo de datos de tal variable? La respuesta es: referencias de clase. Las referencias de clase son tipos de datos cuyas variables (variables de este tipo) toman como valores otros tipos de datos. Para usarla declara una para tu formulario base de edición:
Así, una variable de tipo TFormEditBaseClass podrá tomar como valores cualquier clase descendiente de TFormEditBase. En la práctica lo que podrías hacer es agregar una de estas variables al formulario base:
y cambiar la creación del formulario de edición así:
Entonces, lo único que debes hacer es asignar el tipo correcto en el momento adecuado, por ejemplo, en el constructor de cada descendiente de TFormBase:
Para más información busca "Class references" en la ayuda de Delphi. // Saludos Última edición por roman fecha: 29-05-2004 a las 17:14:52. |
|
|
|