Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Los ayudantes de clases (o clases ayudantes), ¿ya se gestaban en Delphi 7? (https://www.clubdelphi.com/foros/showthread.php?t=51245)

Al González 10-12-2007 20:18:27

Los ayudantes de clases (o clases ayudantes), ¿ya se gestaban en Delphi 7?
 
¡Hola a todos!

Como algunos ya saben y otros se enterarán con el tiempo. Desde la versión 8 de Delphi existe la posibilidad de crear ayudantes de clases (o clases ayudantes). Bajo una sintaxis como esta:
Código Delphi [-]
  Uses
    DB;

  Type
    TFieldHelper = Class Helper For TField
    End;
Esta mañana, impulsado por la curiosidad, he intentado compilar la declaración de arriba con un Delphi 7 (actualizado a subversión 0.8.1), llevándome tremenda sorpresa al ver el siguiente mensaje en la lista de errores:
Cita:

…System unit out of date or corrupted: missing 'TClassHelperBase'
Esperaba cualquier otro mensaje de error, menos uno como ese. ¿El compilador de Delphi 7 ya preveía el uso de ayudantes de clases?

¿A quién más le aparece el mismo mensaje al tratar de compilar esas líneas en Delphi 7 o versiones anteriores?

¿Será que esta actualización de subversión 0.8.1 incluye parte de lo que ya se había creado para Delphi 8?

Un abrazo sorpresivo.

Al González. :)

jhonny 10-12-2007 21:51:11

Bueno, esto de los ayudantes esta interesante :), no conocia esta caracteristica, hace tiempo necesite de algo asi ya que tenia un componente sin los fuentes, al que fue necesario asignarle unos valores en toda la aplicación, nunca me percate de heredarlo y de usar el componente heredado para no tener ese tipo de problemas... para lo que en su momento me hubiera sido muy util esta caracteristica (Aunque en ese tiempo usaba Delphi6 y por lo que veo en D6 no existia esta caracteristica). Aún asi estoy seguro que mas adelante tambien me sera muy util ya que nadie esta exento a que sucedan este tipo de cosas, a parte de eso debe poderse aplicar a muchas otra necesidades... me parece que es algo muy bueno :).

Al González 10-12-2007 23:46:24

¡Hola!

Cita:

Empezado por jhonny (Mensaje 251634)
...Aunque en ese tiempo usaba Delphi6 y por lo que veo en D6 no existia esta caracteristica...

Mi amigo Jhonny, creo que no captaste el punto. Oficialmente dicha característica tampoco existe en Delphi 7.

¿Por qué entonces el compilador de Delphi 7 (y habría que preguntarse si el 6 también) no desconoce la palabra "Helper" de la declaración que puse como ejemplo? ¿Y porqué el mensaje de error hace alusión clara y directa a una clase "TClassHelperBase" (INEXISTENTE EN DELPHI 7) que pareciera ser la clase base de todas las clases ayudantes (muy probablemente a partir de Delphi 8)? :eek: (<-- la carita de sorpresa es para atraer atención a este párrafo :p)

A lo que voy es que me resulta muy extraño que el compilador de Delphi 7 "ya supiera algo" de las cosas nuevas que existirían a partir de Delphi 8.

Y el mensaje más que nada es para invitarlos a probar eso mismo con sus Delphis 7 y 6, para ver más o menos desde cuándo Borland ya planeaba integrar esta útil característica en el compilador y sin embargo no lo hizo (quizá no la alcanzaron a terminar a tiempo). Y, por qué no, hacer una especie de "análisis arqueológico" de esta situación tan curiosa.

Ocho abrazos en el 7.

Al González. :)

Chris 10-12-2007 23:53:27

Cita:

Empezado por Al González (Mensaje 251671)
...
A lo que voy es que me resulta muy extraño que el compilador de Delphi 7 "ya supiera algo" de las cosas nuevas que existirían a partir de Delphi 8.
....
Al González. :)

Lo que pasa, hasta donde yo sé, es que la versión 7 fue hecha pensando en la próxima versión (8) y que prácticamente esa versión -la 7- es una antesala a la movida a .net

Por esta razón, cuando el compilador nos avisa con un mensaje como "unsafe code" lo que nos está dando a entender es que será un poco complicado o imposible convertir automáticamente xyz código a .net

Me imagino, que Borland se imaginó que todo el mundo se iva a ir de boca a la plataforma .net.

Saludos.

jhonny 11-12-2007 00:03:44

Tienes razón Al :D, parece que me gusto tanto esto de los ayudantes de clase que me dedique solo a hablar de eso :D. Aunque la verdad es que si te habia entendido desde el principio (Quiza es mi naturaleza para desvirtuar hilos :)).

Haciendo la prueba en el D6 me sucede que al hacer CTRL+F9, me muestra un cuadro de error diciendo:

Cita:

---------------------------
Error
---------------------------
Expected ':' but For found.
---------------------------
OK
---------------------------
Como tu dices, parece que en D7 si contemplaban la posibilidad de dicha caracteristica, porque en D6 inmediatamente "brinca" dicho error.

Andreano 12-12-2007 09:03:52

Hola a todos,


Durante el desarrollo de Delphi 7 ya teníamos planeado el suporte a Class Helper en futuras versiones de Delphi, por esto la palabra Helper ya esta reservada.

En general es una buena platica nombrar clase de ayuda a determinar funciona XXXXHelper también, mas siempre junto con otro nombre.

Saludos,
Andreano Lanusse
CodeGear


La franja horaria es GMT +2. Ahora son las 09:08:58.

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