Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 2013
-
14 août 2008 à 18:47
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 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?
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 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.
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 15 août 2008 à 14:07
ce que j'aime bien avec tes reponses foxi, c'est que c'est toujours que du code, pas un mot
la en gros, tu me dit que, dans D2007, tu peux mettre des constantes de classe, et que sinon (autre solution en D7), je peux mettre une variable dans maman que j'initialise dans le create des enfants. Ca revient un peu a ma solution, sauf que je prefere la mienne qui me force à definir la valeur, alors qu'avec la tienne, rien ne t'empeche de ne pas initialiser fEtatMax dans un fils.
par contre, tu semble me confirmer que les const de classe sont pas possibles dans D7.
Merci.