cs_OhAime
Messages postés18Date d'inscriptionvendredi 8 avril 2005StatutMembreDernière intervention 7 avril 2007
-
22 juil. 2006 à 17:02
cs_OhAime
Messages postés18Date d'inscriptionvendredi 8 avril 2005StatutMembreDernière intervention 7 avril 2007
-
22 juil. 2006 à 21:34
Bonjour,
Voilà j'ai ce morceau de code:
procedure Tform1.CalculPoint;
var
i,j,m,n,z : integer;
begin
FichierINI := Tinifile.Create('d:\traitement.ini');
i := 4;
SetLength(TabloNivo,i,2);
SetLength(TabloConsomme,1);
for j:= 0 to i-1 do
begin
TabloNivo[j,0] := StrToInt((FichierINI.ReadString(IntToStr(j),'DistanceNiveau','0')));
TabloNivo[j,1] := StrToFloat((FichierINI.ReadString(IntToStr(j),'ConsoH','0')));
StringGrid2.Cells[0,j] := FloatToStr(TabloNivo[j,0]);
StringGrid2.Cells[1,j] := FloatToStr(TabloNivo[j,1]);
end;
m := 0;
n := 0;
z := 0;
repeat
begin
If (TabloNivo[m,0]>TabloPoint[n]) then { <----- Violation d'accès }
begin
TabloConsomme[z] := TabloPoint[n]*TabloNivo[m,1];
TabloNivo[m,0] := TabloNivo[m,0] - TabloPoint[n];
n := n+1;
SetLength(TabloConsomme,(High(TabloConsomme))+2);
z := z+1;
end;
If TabloNivo[m,0]<TabloPoint[n] then
begin
TabloConsomme[z] := TabloConsomme[z] + (TabloNivo[m,0]*TabloNivo[m,1]);
TabloPoint [n] := (TabloPoint[n] - TabloNivo[m,0]);
m := m+1;
end;
memo1.Lines.add(FloatToStr(TabloConsomme[z]));
end;
until
TabloPoint[n] = 0;
end;
Eh bien lorsque je compile c'est bon, mais lors de l'utilisation, j'ai une erreur de violation d'accès à la ligne indiqué dans le code!
Je ne comprend pas bien pourquoi, les tableaux sont bien remplis (je vérifie en les affichant dans les StringGrid). Il arrive d'avoir par moment aussi une "erreur d'opération sur virgule flottante".
Là je suis un peu dans le flou!!
Si vous voyez d'ou peut venir le problème! Merci d'avance!
cs_OhAime
Messages postés18Date d'inscriptionvendredi 8 avril 2005StatutMembreDernière intervention 7 avril 2007 22 juil. 2006 à 19:16
Re bonjour, en fait, j'affichait le contenu du TabloPoint (déclaré en variable globale dans l'unité 1) à partir de la deuxiemme unité. Cela s'affichait bient, mais en fait, j'ai réessayer en l'appelant depuis l'unité 1 et là, c'est comme si le tableau avait été effacé, la valeur High affichée est -1 .
Est-il possible qu'un tableau dynamique soit effacé ainsi en passant d'une form à l'autre??