salut a tous, mon probleme est assez simple a ennoncer, mais je ne comprend pas pourquoi ca ne marche pas.
Je cherche a faire des constantes sur mes records, qui sont structures ainsi :
type
point = record
x: extended;
y: extended;
z: extended;
end;
const
pointNul : point = (x: 0; y: 0; z:0);
function setPoint(x,y,z: extended): point;
type
repere = record
o: point;
x: point;
y: point;
end;
const
repereStandard: repere = ( o: (x:0;y:0;z:0); x: (x:1;y:0;z:0); y: (x:0;y:1;z:0)); //celui ci marche
repereStandard: repere = ( o: pointNul; x: setPoint(1,0,0); y: setPoint(0,1,0)); //la je voudrais utiliser des constantes/fonctions
donc je souhaiterais savoir si il est possible d'utiliser des constantes/fonctions dans la declaration ci dessus.
pointNul n'est pas un type, j'ai parler trop vite (l'habitude du C). C'est pour ca que j'ai corrigé... Mais mon browser a quand meme envoyé l'autre avant que j'ai eu le temps d'annuler.
Par contre je maintiens que tu ne puisse pas executer de fonctions dans un déclaration de constantes. Si tu mets une fonctions dans une constantes, le resultat devient depedant de la fonction et n'est donc plus constant...
oui on ne peu mettre de fonctions dans les declarations de constante.
par contre tu peu declarer tes constantes en variables et les initialisées dans la partie Initialization de l'unité.
attention aux identifiants existant et aux conventions d'ecriture!
type
TPointEx = record
x,y,z: extended;
end;
TReperePEX = record
rO,rX,rY : TPointEx;
end;
function PointEx(const Ax,Ay,Az : extended) : TPointEx;
begin
result.X := Ax;
result.Y := Ay;
result.Z := Az;
end;
heu je crois que tu n'as pas bien compris ma question foxi.
ce que je veux faire, c'est passer une constante que j'ai cree en tant que parametre par defaut d'une fonction.
pour reprendre ton exemple, j'aurai :