Erreur interne : C1091

Résolu
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012 - 16 juin 2012 à 20:48
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012 - 18 juin 2012 à 10:36
Salut à tous !
Voilà, je bosse sur un projet en delphi en ce moment, or je viens de tomber sur une erreur que je n'arrive pas à résoudre.
Voici mon code :
procedure TFPoisson.btnCalculClick(Sender: TObject);
begin
  val(edNombre.Text, nombre, code1);
  val(edProbabiliteessai.Text, probabiliteessai, code2);
  val(edPrecision.Text, precision, codeP);

  if ((code1<>0) or (edNombre.Text='')) then
  begin
  ShowMessage('Veuillez rentrer un nombre d''essai.');
  edNombre.Text:='';
  edNombre.SetFocus;
  end;
  if ((code2<>0) or (edProbabiliteessai.Text='')) then
  begin
  ShowMessage('Veuillez rentrer une valeur pour la probabilité de l''essai.');
  edProbabiliteessai.Text:='';
  edProbabiliteessai.SetFocus;
  end;
  if ((codeP<>0) or (edPrecision.Text='')) then
  begin
  ShowMessage('Veuillez renseigner un chiffre pour la précision.');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;
  if ((precision<0) or (precision>9)) then
  begin
  ShowMessage('La précision doit être comprise entre 0 et 9');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;

if (code1+code2+codeP=0) then
begin
  if nombre<11 then
  for i:=0 to nombre do
    begin
      if i=0 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat1.Caption:=FloatToStr(probabilite);
      end;
      if i=1 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat2.Caption:=FloatToStr(probabilite);
      end;
      if i=2 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat3.Caption:=FloatToStr(probabilite);
      end;
      if i=3 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat4.Caption:=FloatToStr(probabilite);
      end;
      if i=4 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat5.Caption:=FloatToStr(probabilite);
      end;
      if i=5 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat6.Caption:=FloatToStr(probabilite);
      end;
      if i=6 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat7.Caption:=FloatToStr(probabilite);
      end;
      if i=7 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat8.Caption:=FloatToStr(probabilite);
      end;
      if i=8 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat9.Caption:=FloatToStr(probabilite);
      end;
      if i=9 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat10.Caption:=FloatToStr(probabilite);
      end;
      if i=10 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat1.Caption:=FloatToStr(probabilite);
      end;
    end;
    end;
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:=FloatToStr(probabilite);
    end;
end
else
  begin
  lbResultat1.Caption:='';
  lbResultat2.Caption:='';
  lbResultat3.Caption:='';
  lbResultat4.Caption:='';
  lbResultat5.Caption:='';
  lbResultat6.Caption:='';
  lbResultat7.Caption:='';
  lbResultat8.Caption:='';
  lbResultat9.Caption:='';
  lbResultat10.Caption:='';
  lbResultatSup.Caption:='';
end;
end;

En le compilant, j'ai l'erreur : Erreur interne : C1091.
L'un de vous a t'il une idée ?
Merci d'avance.

11 réponses

korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
18 juin 2012 à 09:34
La partie de code qui pose problème corrigée :
procedure TFPoisson.btnCalculClick(Sender: TObject);
var
  i: Integer;    // <- Variable locale
begin
  val(edNombre.Text, nombre, code1);
  val(edProbabiliteessai.Text, probabiliteessai, code2);
  val(edPrecision.Text, precision, codeP);

  if ((code1<>0) or (edNombre.Text='')) then
  begin
  ShowMessage('Veuillez rentrer un nombre d''essai.');
  edNombre.Text:='';
  edNombre.SetFocus;
  end;
  if ((code2<>0) or (edProbabiliteessai.Text='')) then
  begin
  ShowMessage('Veuillez rentrer une valeur pour la probabilité de l''essai.');
  edProbabiliteessai.Text:='';
  edProbabiliteessai.SetFocus;
  end;
  if ((codeP<>0) or (edPrecision.Text='')) then
  begin
  ShowMessage('Veuillez renseigner un chiffre pour la précision.');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;
  if ((precision<0) or (precision>9)) then
  begin
  ShowMessage('La précision doit être comprise entre 0 et 9');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;

if (code1+code2+codeP=0) then
begin
  if nombre<11 then
    for i:=0 to Round(nombre) do
    begin
      if i=1 then
      begin
        probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
        lbResultat1.Caption:='P(X=1)='+FloatToStr(probabilite);
      end
      else
        lbResultat1.Caption:='';
      //end;   <- supprime tous les "end" qui ne correspondent à aucun "begin" !!!!!
      if i=2 then
      begin
        probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
        lbResultat2.Caption:='P(X=2)='+FloatToStr(probabilite);
      end
      else
      lbResultat2.Caption:='';
      //end;
      if i=3 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat3.Caption:='P(X=3)='+FloatToStr(probabilite);
      end
      else
      lbResultat3.Caption:='';
      //end;
      if i=4 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat4.Caption:='P(X=4)='+FloatToStr(probabilite);
      end
      else
      lbResultat4.Caption:='';
      //end;
      if i=5 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat5.Caption:='P(X=5)='+FloatToStr(probabilite);
      end
      else
      lbResultat5.Caption:='';
      //end;
      if i=6 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat6.Caption:='P(X=6)='+FloatToStr(probabilite);
      end
      else
      lbResultat6.Caption:='';
      //end;
      if i=7 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat7.Caption:='P(X=7)='+FloatToStr(probabilite);
      end
      else
      lbResultat7.Caption:='';
      //end;
      if i=8 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat8.Caption:='P(X=8)='+FloatToStr(probabilite);
      end
      else
      lbResultat8.Caption:='';
      //end;
      if i=9 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat9.Caption:='P(X=9)='+FloatToStr(probabilite);
      end
      else
      lbResultat9.Caption:='';
      //end;
      if i=10 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat10.Caption:='P(X=10)='+FloatToStr(probabilite);
      end
      else
      lbResultat10.Caption:='';
      //end;
    end;
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:='P(X='+FloatToStr(nombre)+')='+FloatToStr(probabilite);
    end
    else
    lbResultatSup.Caption:='';
    //end;
end


Corrections :
1) ajout d'une variable locale pour la boucle,
2) suppression de tous les "end" qui ne referment aucun "begin".

Conseil : soigne l'indentation qui permet de repérer plus facilement l'erreur n°2

Pas le temps de tester plus, mais ça compile.
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 juin 2012 à 16:17
Salut,
beaucoup de choses me choquent dans ce code ... on pourrait faire mieux en beaucoup plus court mais il me semble que dans ce bout de code un "end;" est de trop !!!

    end;
    end;  // <-----  celui-ci !!!!!
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:=FloatToStr(probabilite);
    end;



[hr]@+Cirec
[hr]
0
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
17 juin 2012 à 16:36
J'ai toujours la même erreur.
Malgré tout, si tu as des améliorations à me proposer, je suis preneur ...
Je ne fais que débuter en Delphi
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
17 juin 2012 à 22:32
Bonjour,

En plaçant la sélection dans la fenêtre de message sur la ligne indiquant l'erreur interne C1091, que dit l'aide en ligne ?

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
17 juin 2012 à 22:44
Euh c'est à dire ?
Je n'arrive pas à "introduire" ce code dans l'onglet construction.
Je commence en Delphi, il ne doit pas s'agir d'une manipulation qui m'est inconnue.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
17 juin 2012 à 23:19
Peux-tu nous dire avec quelle version de Delphi tu rencontres ce message d'erreur ?

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
17 juin 2012 à 23:27
Je suis sous Delphi 7.
J'aurai du le préciser plus tôt.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 juin 2012 à 23:45
Salut DelphiProg, ça fait plaisir de voir à nouveau parmi nous.

sinon y a t il autre chose dans le code que cette procédure ?

et peux tu mettre le code en ligne sur un site de téléchargement(partage) ?
ce serait bien plus simple pour débusquer cette erreur.


[hr]@+Cirec
[hr]
0
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
18 juin 2012 à 00:02
Je mettrai en ligne le code complet vers 8h.
Je vous remercie de vous occuper de mon code ;D
0
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
18 juin 2012 à 08:45
0
JacKrauser Messages postés 31 Date d'inscription lundi 14 mai 2012 Statut Membre Dernière intervention 21 août 2012
18 juin 2012 à 10:36
Ca marche super bien ;)
Merci, je n'avais même pas remarqué cette erreur :D
0
Rejoignez-nous