Bonjour
Bon je ne sais pas si mon titre est explicite mais je rencontre un pb que je ne parviens pas à resoudre..
J ai la boucle suivante
elle fait appel à la procedure suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for I := 1 to List.Count do begin //memo1.Lines.Add(inttostr(i)+#9+inttostr(coups_g[i])); CalculEF(i); memo1.Lines.Add(floattostr(ef[i])); end;
Si j execute tel quel l appel à CalculEF, le resultat est faux car coups_G n a pas les valeurs qu il contient avant l appel, comme s il s agissait d une variable locale non initialisee !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TForm1.CalculEF(Coup : Integer); var Pg, Pp : Double; begin Pg:=strtofloat(ed_Pg.Text); Pp:=strtofloat(ed_Pp.Text); EF[coup] := (coups_G[coup] - (coup * Pg)) / sqrt((coup * Pg * Pp)); end;
per contre si j affiche la ligne en com (//memo1.....) et que j execute ensuite l appel à calculEF, le resultat est correct.
J ai essayé de modifier l appel en ajoutant coups_G[I] en paramentre mais quand j affiche ce parametre dans ma proc Calcul_Ef il est faux comme s il s agissait d une variable locale non initialisée... Par contre si j ai affiché cette variable avant, il est correct...
J ai utilisé une variable que je n ai jamais utilisé ailleurs dans mon code...
mon tableau coups_G est dynamique, global et initialisé d'apres une premiere TstringList, avant, comme suit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 initialize(Coups_G); SetLength(Coups_G, list.Count);
je ne sais pas comment faire pour y remedier et le pire je ne comprends pas d ou cela peut venir !!!
Merci pour votre aide
stephane
Partager