Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2003
akane akane is offline
Registrado
 
Registrado: nov 2003
Posts: 3
Poder: 0
akane Va por buen camino
plantilla

Hola, soy nueva en esto del Delphi, hasta ahora he programado en c y c++, ¿alguien me puede decir si en object pascal tambien existen plantillas (las "templates" de c++)? y en caso de que existan, cómo se definen y se usan. Muchas gracias por adelantado
Responder Con Cita
  #2  
Antiguo 19-11-2003
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 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
Smile

¡Buen día a todos!

Akane:

En efecto, también en Delphi existen las plantillas.

Una manera de utilizarlas es definir en el proyecto una forma (formulario) que tenga las características comunes que heredarán dos o más formas descendientes. Una vez agregada al proyecto, puede crearse una forma derivada entrando a la ventana New Items (con la opción de menú File-New-Other o el botón New), seleccionando ahí la página que tiene el mismo nombre que el proyecto y escogiendo la forma plantilla con la opción Inherit seleccionada.

Es decir, todas las formas de un proyecto son plantillas potenciales a partir de las cuales se pueden definir nuevas formas. Así por ejemplo, podríamos tener en un proyecto una forma de clase TPlanFormAlum (Plantilla de Forma de Alumnos) con dos formas derivadas: TFormAlumFilo (Forma de Alumnos de Filosofía) y TFormAlumQuim (Forma de Alumnos de Química).

También existe el llamado Depósito de Objetos (Object Repository), que permite mantener una colección de objetos de uso frecuente para aprovecharse en diferentes aplicaciones, y con la posibilidad de tomarlos como plantillas base de nuevos objetos derivados.

Debo agregar que la implementación de plantillas va más allá del diseño visual. También los manejadores de eventos de una plantilla son heredados por sus clases descendientes. Inclusive se pueden redefinir, de manera que el manejador de evento en la forma descendiente pueda llamar al manejador de evento heredado de la plantilla padre. Esto con la palabra reservada Inherited, como sucede con los métodos virtuales.

En Delphi 5 hay un bicho al respecto: Si se define un método virtual en la plantilla padre, y éste es llamado por un manejador de evento redefinido de una forma descendiente, la llamada se realiza de forma inestable, derivando en error. La solución que encontré fue declarar el método virtual como Dynamic en lugar de Virtual. Afortunadamente, en Delphi 6, el problema ya no se presentó, por lo que pude volver a declarar los métodos virtuales de una plantilla como Virtual nuevamente.

Espero esto sea de utilidad. Seguimos en contacto.

Al González .
Responder Con Cita
  #3  
Antiguo 19-11-2003
akane akane is offline
Registrado
 
Registrado: nov 2003
Posts: 3
Poder: 0
akane Va por buen camino
Muchas gracias por la ayuda.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:58:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi