Constante de classe

Résolu
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 14 août 2008 à 18:47
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 15 août 2008 à 15:59
Salut a tous,
Mon problème n'est pas un problème, c'est plutôt un avis a vous demander.
J'ai une classe mère TMere qui fait un paquet de traitements, dont certains qui dépendent d'une valeur. Cette valeur est propre à chaque classe fille de TMere. Pour récupérer cette valeur, j'ai fait une class function abstract dans ma classe mere.
Ca me donne en gros le code suivant :

TMere = class
protected
  class function EtatMax: integer; virtual; abstract;
end;

TFils1 = class(TMere)

protected

  class function EtatMax: integer; override;

end;

TFils2 = class(TMere)

protected

  class function EtatMax: integer; override;

end;

...

class function TFils1.EtatMax: integer;

begin

  Result := 2;

end;

class function TFils2.EtatMax: integer;

begin

  Result := 3;

end;

et perso, je trouve ca un peu pas terrible. Les constantes de classe n'ayant pas l'air d'exister dans mon D7.
Existent-elles mais je ne les ai pas trouvées? sont elles arrivées dans les versions suivantes?
y a t'il une solution plus propre?

Merci de votre aide / avis
A voir également:

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 août 2008 à 15:59
alors oui les constantes de classes sont possible dans D2007 et pas dans D7. surrement faisable depuis D2005/D2006.

Le gros avantage de la propriété en lecture seule me semble mieux qu'une fonction puisque tout comme la fonction tu peu ne pas definir (override) la fonction et surtout tu evite un call.

aprés, l'un comme l'autre, c'est kif kif.

<hr size="2" width="100%" />
3
Rejoignez-nous