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 03-10-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
¡Buen día a todos!

Acabo de leer todos los mensajes de este interesante tema planteado atinadamente por Altp.

Esta misma pregunta:

Cita:
...¿cómo puedo hacer que redeclarándome en un solo objeto de tipo TField pueda crear campos TStringField, TIntegerField, TMemoField...
me la hice yo hace tiempo, cuando buscaba definir nuevas clases de componentes campo a partir de las clases existentes (TStringField, TIntegerField, TCurrencyField, etc.), con propiedades y métodos que tenían practicamente la misma implementación en todas esas clases nuevas.

En aquel entonces me dije: "Debe haber una forma de aplicar esto en TField y que repercuta automáticamente en todos sus descendientes..."

Pues hasta ahora creo que tuve razón, porque siento que "debe haber una forma", sólo que todavía el lenguaje Object Pascal de Delphi no la tiene.

Para mi fue como descubrir ese enorme hueco que tiene la tabla períodica de los elementos químicos.

A esta característica inexistente hasta hoy en día (2 de octubre de 2003) le llamo herencia virtual. Y según el ejemplo que plantea en este caso, pienso que podría aplicarse de la siguiente forma (entre otras posibles):

Código:
Type
  Complement Class TField
    Private
      FGrid :String;
    Protected
      Procedure SetGrid (Const Value :String);
    Public
      Constructor Create (AOwner :TComponent); Override;
    Published
      Property Grid :String Read FGrid Write SetGrid;
  End;
...
A partir de esta declaración, el compilador tendría que asegurarse de que todas las clases descendientes del anterior TField, cumplan con la herencia de su nuevo padre: la clase TField complementada, la nueva TField.

Creo que esta característica elevaría significativamente la potencia del lenguaje Object Pascal (que ya de por si es potente). Estoy seguro de que ya se ha considerado por parte de los ingenieros de Borland.

Por lo pronto, a buscar otras alternativas para estos casos.

Espero esto sea de utilidad, seguimos en contacto.

Al González .
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 19:39:37.


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