Problème avec boucle [résolu] - Delphi/Pascal - Programmation
Marsh Posté le 21-08-2003 à 16:13:49
Zut le gras ne marche pas entre deux fixe on dirait.
Marsh Posté le 21-08-2003 à 16:23:32
pour le coup du point virgule, c'est parce qu'il manque un point virgule à la ligne précédent le "for", du coup il accepte pas le for.
l'autre erreur, comme il le dit il faut que la variable du "for" soit une variable locale (déclarée dans la section var de ta fonction)
mais elles sont très bizarres tes boucles, nulle part tu n'utilises la variable j ou k
Marsh Posté le 21-08-2003 à 16:58:16
Je les avait déclarées dans la partie var de la form, j'ai corrigé.
Marsh Posté le 21-08-2003 à 17:13:35
Avec le rajout du ";" le prog se lance par contre j'ai droit à une "violation d'accès...etc" dès que je clique sur le bouton.
Marsh Posté le 21-08-2003 à 17:33:15
bah c'est que t'accèdes à un truc que tu peux pas
Faut l'exécuter en pas à pas (en mettant un breakpoint sur la 1e ligne puis avec F7/F8 pour aller de ligne en ligne)
Marsh Posté le 21-08-2003 à 17:55:57
Quand je fait f8 il finit par me lancer le prog et dès que je clique sur mon bouton bah....
Pas moyen de trouver l'erreur dans la deuxième boucle c'est rageant.
Marsh Posté le 21-08-2003 à 18:01:34
faut mettre un breakpoint j'ai dit
clic dans la marge pour mettre une ligne en rouge, par la 1e appelée par ton clic de bouton, et il s'arrêtera dessus quand tu cliqueras sur le bouton.
Le F7/F8 c'est pour avancer à la ligne suivante une fois qu'il est arrêté sur le breakpoint.
T'as jamais utilisé le debogueur de delphi ?
Marsh Posté le 21-08-2003 à 18:27:07
Bon en gros mes variables j,k,x,y ne sont jamais utilisées.
Je vais revoir ma copie et te tiens au courant.
Ps: je crois que je vais un peu plus potasser mon bouquin sur delphi, cela semble nécéssaire.
ps2: ou puis-je voir l'état de mes variables durant le débuggage ?
Marsh Posté le 21-08-2003 à 21:02:45
clic de droite sur la variable, Evaluate, ou un truc du genre.
Sinon ça se cache dans un menu "Debug windows".
Y a aussi "Add to watch" qui te permet de suivre l'état de la variable en exécution pas à pas, pour voir comment elle évolue.
Marsh Posté le 03-09-2003 à 14:06:13
Bon je reviendu.
En fait le problème se situait entre le fauteuil et l'écran.
Par contre j'ai un autre prob mais je vais ouvrir un new topic piur ça.
Merci encore.
Marsh Posté le 21-08-2003 à 16:12:48
Salut.
Voilà j'ai deux boucles for quasi identiques et pourtant la première fonctionne mais pas la deuxième.
Voilà la première:
[75][g]for j := 1 to 9 do[/g]
if FCheckboxes[i].Checked = true
then
begin
tableau1[i]:= i;
//label2.Caption:= inttostr(tableau1[1]);
i:=i+1;
end
else
begin
tableau1[i]:= 0;
//label2.Caption:= inttostr(tableau1[1]);
i:=i+1;
end
La deuxième:
[96][g]for k := 1 to 9 do[/g]
if tableau1[x] <> 0
then
begin
tableau3[y] := tableau1[x];
y:=y+1;
x:=x+1;
label2.Caption:= inttostr(tableau3[1]);
end
else
begin
y:=y+1;
x:=x+1;
Label2.Caption:= inttostr(tableau3[1]);
end
end;
Les messages d'erreur:
[75]La variable de contrôle de la boucle FOR doit être une variable locale simple
[96]Opérateur ou point virgule manquant.
J'ai mis en gras les lignes concernées.
La première boucle fonctionne si elle est seule mais dès que je rajoute la deuxième c'est la cata.
Si qqun a une idée sur mon erreur.
Merci d'avance.
Message édité par amsterdam le 03-09-2003 à 14:06:42